下面的第一张图片是我将使用psql,ruby和活动记录的项目的数据库架构。
在编写模式时,事情变得有点复杂。我和#34; special_days" table最终成为" days_of_week"的连接表。和"组织"。我假设这不是最佳做法,最终会给我带来麻烦。
在下面的第二个模式中,我为"星期几和#34;制作了一个单独的连接表。和"组织"。我的special_days表仍然需要与day_of_week和组织关联,所以我认为我必须将加入信息保存在special_days表中。有一个更好的方法吗?我的第二次尝试似乎太重复了。
这些是我的关系:
一周中的几天&组织|多对多city&组织|一对多
组织&特殊日子一对多
星期几&特殊日子一对多
答案 0 :(得分:0)
有关这些要求的更多信息可能会有用。您是否需要做一些事情,例如定义哪些日子是假期,哪些日子是发薪日等等(例如,许多组织将Sat和Sun定义为非工作日,而许多美国组织将7月4日定义为非工作日)?我不确定本周代表的是什么日子。这是一张包含7条记录的表格(M,T,W,Th,F,S,Sun)?如果我正确地猜测要求,那么最好做一些名为special_day的表,其中包含日期列和重复列(例如每周,每月,每年等)。然后,您可以拥有organization_special_day表,该表是组织和special_day上的多对多连接表。