我们在学校的技术顾问建议我在创建联结表之前开始创建实体主表。他还鼓励我使用复合PRIMARY KEYS而不是COMPOSITE UNIQUE键作为列。
他告诉我们在编程GUI之前大部分时间都花在数据库上,所以我需要确保表设计不会导致任何问题。
所以,让我们说,
ONE 类拥有或属于 MANY schoolyear = TRUE
ONE schoolyear MANY 类= TRUE
让我觉得有3个表,
(设计1):
表1:课程
id PK
name
yearlevelId
结点表2:SchoolYearClasses
id PK AI
classId -- FK REFERENCES classes(id)
schoolYearId -- FK REFERENCES schoolyear(id)
表3:SchoolYear
id PK AI
schoolYearStart
schoolYearEnd
优于此
(设计2):
类
id PK AI
name
yearlevelId -- FK REFERENCES yearLevel(id)
schoolyearId -- FK REFERENCES schoolyear(id)
学年
id PK AI
schoolYearStart
schoolYearEnd
我需要一些专业建议,因为我确定你们处理过很多涉及时期的系统。我知道设计会影响事务插入生成以及连接。
哪种设计更好? 如果大多数列都是数字(id),我该如何插入记录?
我很感激任何帮助。
感谢。
答案 0 :(得分:0)
对于“联结”表(实现多对多映射),我强烈反对使用AUTO_INCREMENT
。你有一个非常好的复合PK,而且你需要在另一个INDEX
中以相反的顺序使用这对id。结束。
More on a good schema for M:N。这给了“为什么”。
我同意@Drew -
SELECTs
。SELECTs
。很明显,一个架构更好。