我想为学校管理系统创建一个数据库。该数据库有两个表,包含学生和教师等共享字段。 例如,Student表包含字段(id,name,phone,class),而Teacher表包含字段(id,name,phone,department)。
制作更好:一个名为 Person 的表,其中包含字段(id,name,phone),Student表包含字段(id,person_id,class),而Teacher表包含字段(id ,person_id,department)。
这两种方式中的哪一种更好?
答案 0 :(得分:1)
直接回答这个问题可能是基于意见的。设计数据库通常没有最佳策略。
理论示例:如果有大量数据,您可能需要考虑性能:搜索和加入的内容和方式。
如果您主要搜索Students
和Teachers
,则可能无法创建Person
表,您可以轻松搜索它们。然后,如果您要从db中搜索所有Person
,则需要在这些查询和UNION
之间进行查询,并使用{em>类型 { {1}}。
如果您更频繁地搜索Person
,那么您可以创建Person
表并实施Person
和Teacher
以获得Student
的外键。然后,当搜索最后提到的两个时,您需要将Person
设为JOIN
。
在现实生活中,我不知道在这个用例中是否真的存在很大差异。更重要的是,您选择一些策略并在未来的决策中遵循它,以保持设计清晰。
但是,可能会出现需要更改所选策略的情况。理论上如此。
相关问题here