我需要一对多还是多对多关系?
Do I need a one-to-many or a many-to-many relationship?
作为 this question 的一种 sequel 或扩展,我开始怀疑我是否打算在我的联系人和兴趣模型之间建立多对多关系,并且会想尝试就此事征求第二意见。
为了总结或澄清,我有:
联系方式
- 包含一个ID和一个或多个用户联系信息字段(对问题不重要)
- 包括一个或多个与该联系人关联的兴趣列表,从数据库的兴趣对象列表中选择
- 可以选择任意数量的兴趣,最多并包括所有可用的兴趣,但不能多次选择相同的兴趣。
兴趣
- 取自数据库定义的兴趣列表(如果可能,不希望将选项列表硬编码到模型、视图或控制器中)
- 存在的主要目的是为联系人列表提供过滤条件(例如 "return all Contacts whose Interests include (...)")
- 每个兴趣可以与任意数量的联系人关联with/chosen,但不一定需要在一个视图中引用所有关联的联系人
所需的观看次数
- 创建联系人 - 向用户展示所有可用兴趣的列表,用户应该能够选择一个或多个与他们的联系人相关联
- 联系人索引- UI 包括 buttons/checkboxes 的列表,每个可能的兴趣对应一个;通过选择其中的一项或多项,user/administrator 可以选择根据他们选择的兴趣是否包括他们指定的一项或多项兴趣来过滤返回视图的联系人
现在,我想我对如何编写许多这些操作背后的逻辑已经有了足够的了解;我 不 确定的是,这是否需要 Contact 和 Interest 对象之间的一对多或多对多关系。
我意识到我需要另一个问题来了解正确建模的细节,但现在上述标准描述了哪种关系:一对多或多对多?
多对多在这里是正确的。您自己说过:联系人..."Can choose any number of Interests, up to and including all available Interests" 和兴趣..."can be associated with/chosen by any number of Contacts"。双方关系不限于一个关联
假设一个联系人只能选择一个兴趣,但联系人可以选择他们想要的任何兴趣,而不管其他联系人的选择。这将是一对多的,因为一个联系人只能有一个兴趣,但一个兴趣可以与许多用户相关联。
作为 this question 的一种 sequel 或扩展,我开始怀疑我是否打算在我的联系人和兴趣模型之间建立多对多关系,并且会想尝试就此事征求第二意见。
为了总结或澄清,我有:
联系方式
- 包含一个ID和一个或多个用户联系信息字段(对问题不重要)
- 包括一个或多个与该联系人关联的兴趣列表,从数据库的兴趣对象列表中选择
- 可以选择任意数量的兴趣,最多并包括所有可用的兴趣,但不能多次选择相同的兴趣。
兴趣
- 取自数据库定义的兴趣列表(如果可能,不希望将选项列表硬编码到模型、视图或控制器中)
- 存在的主要目的是为联系人列表提供过滤条件(例如 "return all Contacts whose Interests include (...)")
- 每个兴趣可以与任意数量的联系人关联with/chosen,但不一定需要在一个视图中引用所有关联的联系人
所需的观看次数
- 创建联系人 - 向用户展示所有可用兴趣的列表,用户应该能够选择一个或多个与他们的联系人相关联
- 联系人索引- UI 包括 buttons/checkboxes 的列表,每个可能的兴趣对应一个;通过选择其中的一项或多项,user/administrator 可以选择根据他们选择的兴趣是否包括他们指定的一项或多项兴趣来过滤返回视图的联系人
现在,我想我对如何编写许多这些操作背后的逻辑已经有了足够的了解;我 不 确定的是,这是否需要 Contact 和 Interest 对象之间的一对多或多对多关系。
我意识到我需要另一个问题来了解正确建模的细节,但现在上述标准描述了哪种关系:一对多或多对多?
多对多在这里是正确的。您自己说过:联系人..."Can choose any number of Interests, up to and including all available Interests" 和兴趣..."can be associated with/chosen by any number of Contacts"。双方关系不限于一个关联
假设一个联系人只能选择一个兴趣,但联系人可以选择他们想要的任何兴趣,而不管其他联系人的选择。这将是一对多的,因为一个联系人只能有一个兴趣,但一个兴趣可以与许多用户相关联。