【问题标题】:Can a join table be combined with another table?连接表可以与另一个表组合吗?
【发布时间】:2015-06-10 20:44:36
【问题描述】:

下面的第一张图片是我的一个项目的数据库架构,该项目将使用 psql、ruby 和活动记录。

在编写我的架构时,事情变得有点复杂。我的“special_days”表最终成为“days_of_week”和“organizations”的连接表。我假设这不是最佳做法,最终会给我带来麻烦。

在下面的第二个模式中,我为“星期几”和“组织”创建了一个单独的连接表。我的 special_days 表仍然需要与 day_of_week 和组织相关联,所以我认为我必须将加入信息保留在 special_days 表中。有一个更好的方法吗?看来我的第二次尝试太重复了。

这些是我的关系:

星期几和组织 |多对多

城市和组织 |一对多

组织和特殊日子 |一对多

星期几和特殊日子 |一对多

【问题讨论】:

  • 我认为您的第二个架构确实具有代表性,第一个架构更好地服务于目的......让我们看看其他人的建议......
  • 表名按照惯例应该是单数(day_of_week、组织、城市等)。

标签: database join schema psql jointable


【解决方案1】:

有关要求的更多信息可能会有用。您是否需要做一些事情,比如定义哪些日子是假期,哪些日子是发薪日等(例如,许多组织会将周六和周日定义为非工作日,而许多美国组织会将 7 月 4 日定义为非工作日)?我不确定days_of_the week 代表什么。这是一张包含 7 条记录的表(M、T、W、Th、F、S、Sun)吗?如果我对要求的猜测正确,最好做一个名为 special_day 的表,该表有一个日期列和一个重复列(例如每周、每月、每年等)。然后,您可以有一个 organization_special_day 表,它是一个关于组织和 special_day 的多对多连接表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    • 2023-03-26
    • 2011-04-22
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多