首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql周期列和连接表

Mysql周期列和连接表
EN

Stack Overflow用户
提问于 2016-07-12 12:05:09
回答 1查看 66关注 0票数 0

我们在学校的技术顾问建议我在创建连接表之前先创建实体的主表。他还鼓励我对列使用复合主键而不是复合唯一键。

他告诉我们,在编写GUI之前,大多数时间都要花在数据库上,所以我需要确保表的设计不会造成任何问题。

所以说,

一个班级已经或属于多个学年=真

ONE学年有多个类= TRUE

让我觉得有三张桌子,

(设计1):

表1:类

代码语言:javascript
复制
id PK
name
yearlevelId

连接表2: SchoolYearClasses

代码语言:javascript
复制
id PK AI
classId -- FK REFERENCES classes(id)
schoolYearId -- FK REFERENCES schoolyear(id)

表3: SchoolYear

代码语言:javascript
复制
id PK AI
schoolYearStart
schoolYearEnd

比这更好

(设计2):

代码语言:javascript
复制
id PK AI
name
yearlevelId  -- FK REFERENCES yearLevel(id)
schoolyearId -- FK REFERENCES schoolyear(id)

SchoolYear

代码语言:javascript
复制
id PK AI
schoolYearStart
schoolYearEnd

我需要一些专业的建议,因为我相信你们处理了很多涉及月经的系统。我知道设计会影响事务插入以及连接。

哪种设计更好?如果大多数列都是数字(id),我如何插入记录?

我很感谢你的帮助。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-07-13 17:27:11

对于“连接”表(实现多到多映射),我强烈反对使用AUTO_INCREMENT。您有一个非常好的复合PK,另外还需要在另一个INDEX中以相反的顺序对in。结束了。

http://mysql.rjweb.org/doc.php/index_cookbook_mysql#many_to_many_mapping_table。这就给出了“理由”。

我同意“Drew”

  1. 在GUI上工作一段时间。
  2. 然后,您将对所需的SELECTs有一种感觉。
  3. 根据你的两个设计勾勒出SELECTs。很明显,有一个模式更好。
  4. 然后最后确定架构设计。
  5. 六个月后,改进模式。(是的,你会发现“最终”设计并不那么好。)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38328433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档