【问题标题】:Many to many database design多对多数据库设计
【发布时间】:2015-07-23 12:10:30
【问题描述】:

我有 PersonCourse 有多对多的关系。 (有一个表只维护了 2 个 ID 的关系

为该关系设置第三个布尔字段Selected 是否更好。

或者从关系表中添加/删除完整的行?

什么更常见?我也需要支持编辑

【问题讨论】:

  • SELECTED 字段的用途是什么?
  • 最好从关系表中删除行以节省空间,尤其是在关系表上没有任何详细信息的情况下
  • 我从您的问题中了解到的是您想从数据透视表中删除/保留关系。我对吗?如果我是对的,那么这取决于您的业务逻辑。如果要求跟踪所有历史记录,那么您必须保留它们。
  • 答案取决于此表如何适合您的整体数据库设计、您需要存储哪些数据以及您在其他表中存储的内容。根据您的问题,该表中其他可能的字段可能是角色(学生、讲师等)和状态(已注册、进行中、已完成等)。
  • 如果您使用的是 SELECTED 字段,您的表中必须有 Count(Person) * Count(Course) 行。一段时间后,这将变得非常笨拙,并且会使从任一表中添加/删除行变得非常缓慢

标签: sql asp.net asp.net-mvc database-design


【解决方案1】:

来自cmets:

最好从关系表中删除行以节省空间,尤其是如果您没有关系表的任何详细信息时

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    相关资源
    最近更新 更多