Mar*_*ark 0 database database-design normalization relational-database
非常感谢有关规范化和优化此表'table1'的帮助.我目前可以执行以下查询:
SELECT user AS users
FROM table1
WHERE project='Project B'
AND doctype='DocType B'
Run Code Online (Sandbox Code Playgroud)
并得到我想要的东西,但我觉得它不是很有效率,并希望得到如何改进的帮助(有解释).
最终我试图实现以下目标:
1)将这1个表分成多个表以便于维护
2)给定'project'和'doctype',返回所有用户
表格1:
project doctype user
------- ------- ----
Project A DocType A User A
Project A DocType A User B
Project A DocType A User C
Project A DocType A User D
Project A DocType B User A
Project A DocType B User C
Project A DocType B User D
Project A DocType C User B
Project A DocType C User D
Project B DocType A User B
Project B DocType A User E
Project B DocType A User F
Project B DocType A User G
Project B DocType B User A
Project B DocType B User C
Project B DocType B User E
Project B DocType B User H
Project B DocType C User A
Project B DocType C User I
Run Code Online (Sandbox Code Playgroud)
如果需要更多信息,请告知我们.谢谢.
由于表是"全键"的,并且由于没有重复,因此没有明显的方法通过规范化来减少表.
有时(但不是在这种情况下)您可能能够创建3个具有列对的表:PD,PU和DU(使用列的首字母来形成表名).但是,由于用户A与项目A上的DocType A相关联,但与项目B上的DocType A不相关,因此在此示例中不起作用.