我目前正在开展一个项目,我有'单位',每个'阶段'将有三个不同的“阶段”和三个“步骤”。我无法设计数据库的布局,因此我不知道是将它全部放在一个表还是多个表中。
例如:
表1:unit_id,unit_category,unit_name,unit_phase,unit_step
或:
表1:unit_id,unit_category,unit_name
表2:phase_id,phase_name,unit_id
表3:step_id,step_name,unit_id
...
是否可以更容易地连续更新行中的字段,还是将“单位”ID放在其他表中更好?
(同样,每个阶段都有完全相同的步骤)
澄清: 每个单元经历5个不同的阶段。每个阶段内有3个步骤。一旦该单元经历了所有阶段,它就会返回静止状态。用户是启动流程的人。
答案 0 :(得分:2)
你应该抢劫数据库常规表单规则。这将有助于设计你的表格。
看看:
规则:
答案 1 :(得分:1)
除非一个单元可以同时处于多个阶段或步骤中,或者每个单元的阶段和步骤都是唯一的,否则有几个表格完全没有意义。
答案 2 :(得分:0)
http://en.wikipedia.org/wiki/Database_normalization
这是你应该深入研究的话题。但是对于您的具体问题:尽量不要复制记录。尝试以一种方式设计数据库,通过最少数量的公共属性(键)将每个表链接到其他表。
答案 3 :(得分:0)
'单位'将有三个 不同的“阶段”和三个“步骤” 到每个'阶段'
关系,正如我所见:
我将有3个单独的表:单位,阶段和步骤。
然后,如果您想获得与单元相关的所有步骤,那么类似于以下的SQL将起作用:
SELECT steps.*
FROM units
LEFT OUTER JOIN phases ON units.id=phases.unit_id
LEFT OUTER JOIN steps ON phases.id=steps.phase_id
WHERE units.id='the particular unit ID for which you want to query'