Ruby on rails 是否有多个且属于与联接表的关联?
我有一张人员表和一张通知表 有很多人和6个通知,每个人都可能收到 我正在考虑一个通知表,其中只包含: “身份证” “通知名称” 但每个人都可以更改每个通知的某些特征 然后我会有一个连接表 “个人识别码” “通知id” “通知文本” 这看起来合适吗Ruby on rails 是否有多个且属于与联接表的关联?,ruby-on-rails,database,database-design,Ruby On Rails,Database,Database Design,我有一张人员表和一张通知表 有很多人和6个通知,每个人都可能收到 我正在考虑一个通知表,其中只包含: “身份证” “通知名称” 但每个人都可以更改每个通知的某些特征 然后我会有一个连接表 “个人识别码” “通知id” “通知文本” 这看起来合适吗 然后这个人有很多通知,通知属于这个人。你要找的是一个关联 编辑: 这实际上可能不是你想要的。当你说“加入桌子”时,我误解了你的意思。您应该有一个Persons表和一个Notifications表,Person有许多通知,正如您所说,通知属于Person
然后这个人有很多通知,通知属于这个人。你要找的是一个关联 编辑:
这实际上可能不是你想要的。当你说“加入桌子”时,我误解了你的意思。您应该有一个Persons表和一个Notifications表,Person有许多通知,正如您所说,通知属于Person。但是在Notifications表中,只需存储您说过要放在join表中的内容:
notification\u id
、person\u id
、notification\u text
,以及通知所需的任何其他属性。我认为您的思路正确,只做了一些小的更改
我将创建一个通知类型
,其中包含一个人可能收到的6种通知。然后您就有了通知
,它将通知类型
链接到带有实际消息的人员
所以你的桌子看起来像
Person: id, name, ...
NotificationType: id, name, severity, ...
Notification: id, person_id, notification_type_id, message
你的模特会是
class NotificationType
has_many :notifications
end
class Person
has_many :notifications
end
class Notification
belongs_to :person
belongs_to :notification_type
end
希望这有帮助 但是,我应该将特定于某个人的通知设置放在哪里,例如他们修改的通知文本?如果您还有其他问题,请参阅我编辑的答案和评论。这会起作用,但我担心的是,如果我更改其中一个通知的名称,那么我必须更改通知表中具有该名称的所有记录,不仅仅是一张唱片。或者,如果通知获得更多非特定于个人的属性。例如,我可以有一个名为“提醒”的通知,它有一个属性“advance_time”,该属性的值是提醒发送事件前的小时数。然后我又不得不改变一堆记录,而不仅仅是一张。有意义吗?然后您需要创建不同的模型
NotificationType
来存储不同类型的通知。然后NotificationType有许多通知,通知属于NotificationType。并在通知表中添加一个notification\u type\u id
列。