访问 table 设计

Access table design

我对 Access table 有以下要求,但我无法找出设计 table 的最佳方法。我不确定我所拥有的是否是这种情况下的最佳实践。

table 字段是名称、状态、日期 每个名称至少有三个状态,它们每个月都会更改,然后停在 Open 上。必须在数据库中捕获每个状态更改的日期。

示例:

Name    |   Status  |   Date  
--------+-----------+------------------
name1   |   N/A     |   April  
name2   |   N/A     |   April  
name1   |   Open    |   May  
name2   |   N/A     |   May  
name1   |   closed  |   June  
name1   |   open    |   July  

老实说,我自己已经多次考虑过这个特定的设置。我继承了一个使用您发布的格式的数据库。

虽然我不认为设置有问题,但我的另一个想法是创建 3 个属于每个状态的复选框字段以显示进度。然后会有 3 个日期字段,每个都与复选框被选中的时间有关。

这将减少 2/3 的记录数量,但又一次。我觉得更多的是见仁见智。

从标准化的角度来看,您总共需要 4 tables
第一table大师table

Name    |   Status  |   Date (month ?)   
--------+-----------+--------  
1       |   1       |   4  
2       |   3       |   5

第二个table名字table

ID      |   Names  
--------+-----------
1       |   name1   
2       |   name2   

第三table状态table

    ID      |   Status
    --------+-----------
    1       |   N/A
    2       |   Open
    3       |   closed

第4table个月

ID      |   Month
--------+-----------
1       |   January
2       |   February
........|............
12      |   December