访问表设计

时间:2015-06-03 13:47:17

标签: ms-access ms-access-2010

我对Access表有以下要求,而且我无法找出设计表的最佳方法。在这种情况下,我不确定我拥有的是最佳做法。

表字段是名称,状态,日期 每个名称至少有三个状态,它们每个月都会更改,然后在“打开”时停止。必须在数据库中捕获每个状态更改的日期。

示例:

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

2 个答案:

答案 0 :(得分:1)

从标准化的角度来看,你需要总共4张桌子 第一个表格

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

第二个表名称表

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

第3张表状态

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

第4个表

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

答案 1 :(得分:0)

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

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

这会将记录数减少2 / 3rds,但又会减少。我认为这更多的是一个意见问题。