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

Database 联接表可以与另一个表组合吗?,database,join,schema,psql,jointable,Database,Join,Schema,Psql,Jointable,下面的第一幅图是我的数据库模式,它用于一个将使用psql、ruby和ActiveRecord的项目 在编写模式时,事情变得有点复杂。我的“special_days”表最终变成了“days_of_week”和“organizations”的联接表。我认为这不是最佳实践,最终会给我带来麻烦 在下面的第二个模式中,我为“一周中的几天”和“组织”创建了一个单独的联接表。我的special_days表仍然需要与一周中的一天和一个组织相关联,因此我认为我必须在special_days表中保留加入信息。有更好

下面的第一幅图是我的数据库模式,它用于一个将使用psql、ruby和ActiveRecord的项目

在编写模式时,事情变得有点复杂。我的“special_days”表最终变成了“days_of_week”和“organizations”的联接表。我认为这不是最佳实践,最终会给我带来麻烦

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

这就是我的关系:

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

城市和组织|一对多

组织和特殊日子|一对多

一周中的一天和特殊日子|一对多


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

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

我认为你的第二个模式确实很有代表性,第一个更适合这个目的。。。让我们看看其他人的建议。按照惯例,表名应该是单数的(一周中的第二天、组织、城市等)。我认为您的第二个模式确实具有代表性,第一个模式更好地发挥了作用。。。让我们看看其他人的建议。按照惯例,表名应该是单数的(一周中的第二天、组织、城市等)。我认为您的第二个模式确实具有代表性,第一个模式更好地发挥了作用。。。让我们看看其他人的建议。按照惯例,表名应该是单数的(一周中的某一天、组织、城市等)。