【发布时间】:2012-04-25 06:15:37
【问题描述】:
提前感谢您的意见。
我有 3 个对象:
- 学校
- 营地
- 教练
具有以下关系:
- 一个学校可以有多个营地。
- 一所学校可以有多个教练。
- 一个营地可以有多个学校。
- 一个训练营可以有多个教练。
- 一个教练可以拥有多个学校。
- 一个教练可以有多个营地。
多对多,School_Camp,显然将学校链接到具有额外字段的营地,以标识营地的年份。但是一个营地可以有多个教练。
::School_Camp::
- School_id
- Camp_id
- 日期
设置另一个多对多 School_Camp_Coach 链接到 School_Camp 和 Coach 表对我来说会更好吗?
::School_Camp_Coach::
- School_Camp_id
- Coach_id
如果这是更有效的方法...我应该给 School_Camp 一个可以快速引用的独立 id 列,而不是使用三个字段作为标识符吗?
::School_Camp::
- 身份证*
- School_id
- Camp_id
- 日期
或
只有一个多对多表 School_Camp_Coach 和 3 个外键会更好吗?
::School_Camp_Coach::
- School_id
- Camp_id
- Coach_id
- 日期
我预见到的唯一问题是,您将有多个外键条目,但日期不同。
再次感谢。
【问题讨论】:
-
提前感谢时至少使用大写字母?
-
在什么方面最有效?数据存储大小?检索或更新时间?查询复杂度?对于某些效率度量,这取决于您将如何处理数据。有时非规范化是值得的;其他时候不会。
-
数据存储大小和查询复杂度是比较重要的因素。