Database design 设计问题
我目前正在从事一个项目,我的“单位”将有三个不同的“阶段”,每个“阶段”有三个“步骤”。我在设计数据库布局时遇到了问题,因此我不知道是将其全部放在一个表中还是多个表中 例如: 表1:单元id、单元类别、单元名称、单元阶段、单元步骤 或: 表1:单位id、单位类别、单位名称 表2:阶段id、阶段名称、单元id 表3:步骤id、步骤名称、单元id 连续更新一行中的字段更容易,还是将“单位”id放在其他表中更好 (此外,每个阶段都有完全相同的步骤) 澄清:Database design 设计问题,database-design,Database Design,我目前正在从事一个项目,我的“单位”将有三个不同的“阶段”,每个“阶段”有三个“步骤”。我在设计数据库布局时遇到了问题,因此我不知道是将其全部放在一个表中还是多个表中 例如: 表1:单元id、单元类别、单元名称、单元阶段、单元步骤 或: 表1:单位id、单位类别、单位名称 表2:阶段id、阶段名称、单元id 表3:步骤id、步骤名称、单元id 连续更新一行中的字段更容易,还是将“单位”id放在其他表中更好 (此外,每个阶段都有完全相同的步骤) 澄清: 每个单元经历5个不同的阶段。每个阶段内有3
每个单元经历5个不同的阶段。每个阶段内有3个步骤。一旦装置完成所有阶段,它将返回到静止状态。用户是启动该过程的人。您应该从数据库的正常表单规则中获取信息。这将有助于设计您的桌子 看看:
- 消除同一表中的重复列
- 为每组相关数据创建单独的表,并使用唯一的列或列集(主键)标识每一行李>
- 删除应用于表中多行的数据子集,并将其放置在单独的表中
- 通过使用外键在这些新表和它们的前一个表之间创建关系李>
- 删除不依赖主键的列李>
- 单位到阶段:1到多
- 单位到步骤:1到多
- 阶段到步骤:1对多
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'
这与php没有任何关系。。。也许有更多代表的人可以编辑它?看起来每个单元将有多个步骤,因为1)每个阶段有多个步骤,2)每个单元有多个阶段。是的,但问题是:一个单元可以同时有多个步骤或阶段吗?只有n:m映射才需要额外的表。“阶段”和“步骤”对我来说意味着一个单元经历不同的阶段及其顺序步骤。每个单元经历不同的5个不同阶段。每个阶段内有3个步骤。一旦装置完成所有阶段,它将返回到静止状态