联接表可以与另一个表组合吗?

时间:2015-06-08 05:03:13

标签: database join schema psql jointable

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

在编写模式时,事情变得有点复杂。我和#34; special_days" table最终成为" days_of_week"的连接表。和"组织"。我假设这不是最佳做法,最终会给我带来麻烦。

在下面的第二个模式中,我为"星期几和#34;制作了一个单独的连接表。和"组织"。我的special_days表仍然需要与day_of_week和组织关联,所以我认为我必须将加入信息保存在special_days表中。有一个更好的方法吗?我的第二次尝试似乎太重复了。

这些是我的关系:

一周中的几天&组织|多对多

city&组织|一对多

组织&特殊日子一对多

星期几&特殊日子一对多

Schema with "Special_days" acting as a join table Schema with separate join table

1 个答案:

答案 0 :(得分:0)

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