减少存储在表中的属性数量

时间:2011-03-24 13:55:08

标签: database database-design

我在为数据库创建表时遇到问题。我想记录每个农民的许多状态,例如农民将在水稻种植中执行许多程序,并且从栽培到收获大约有26个程序。

因此,每个农民必须按照农业助理确定的日期遵循每个程序的时间表。我的问题是如何记录这个程序状态以记录农民是否遵守计划?现在,我使用26个过程作为活动表的属性,因此在活动表中我有属性

farmerID, status1 (for activity 1 eg: Cultivation) , 
status2 (for activity 2 eg: fertilization), 
status 3 

等等到状态26 ......所以这是正确的方法吗?我的讲师说这是不正确的,因为那里有很多属性。你能解决这个问题吗?我再也想不到了。

3 个答案:

答案 0 :(得分:3)

不是一种处理它的好方法,特别是因为它不能立即扩展而不添加新字段(并让代码映射这些新字段)。我会做这样的事情:

tbl_farmer - farmerId

tbl_status - statusId - 姓名(即培养等)

tbl_activity - 农民 - statusId

每次农民执行状态更新时,您都会将条目放在tbl_activity中。基本上tbl_activity是一个参考表

答案 1 :(得分:0)

另一种方法是给每个活动(程序)一个id,而不是很多列只有三个。

farmer_id
activity_id
status

假设您的活动存储在单独的表格中。

答案 2 :(得分:0)

enter image description here