我需要在我的数据库中创建多个多对多的关系。
有一个“主”表,我们称之为“项目”。
然后有3个表包含“选项”。
假设我们有:品类、地域、用户。这些保存的唯一信息是项目的名称和ID。
可以将多个类别、区域和用户分配给多个项目。
因此,我有两个选项来创建这种关系:
1)为每个'选项'表创建关系表。每个表包含两列:project_id和category_id、region_id或user_id。使用这种方法,我有3个关系表,每个表只处理一对表之间的关系。例如:
****************************
* project_id * category_id *
****************************
* 1 * 3 *
*------------*-------------*
* 3 * 4 *
*------------*-------------*
2) 创建一个包含4列的关系表project\u id、category\u id、region\u id和user\u id。每行在任何时候都只能使用2个字段。项目id,然后是相关项字段的id。
**************************************************
* project_id * category_id * user_id * region_id *
**************************************************
* 1 * 3 * * *
*------------*-------------*---------*-----------*
* 3 * 4 * * *
*------------*-------------*---------*-----------*
* 3 * * 2 * *
*------------*-------------*---------*-----------*
* 4 * * * 3 *
*------------*-------------*---------*-----------*
我被第二个选项所吸引,因为它将防止我需要创建额外的关系表。有什么陷阱或其他问题我应该考虑吗?
是否有任何陷阱或其他问题我应该考虑?
您的要求之一是“每行在任何时候都只使用2个字段。”在MySQL中,没有简单的方法来强制执行此约束,因此可能会导致数据不一致。
如果使用多表设计,则可以使用非空字段和外键约束来确保一致性。
问题内容: 假设我有一个具有两个不同的一对多关系的对象。很像: 和 假设我的对象有两个与这两个对象相关的列表。 我已经阅读了以下示例:http : //forum.springsource.org/showthread.php?50617-rowmapper -with-one-to-many- query,其中说明了如何使用单个一对多关系来执行此操作。为了您的方便,这里是替代: 我认为这并不涉及
我有一个关于Hibernate ManyToMany映射的问题。我有两个类 A 和 B,它们之间的映射是由 Hibernate 解析的 ManyToMany 映射: 用户和组的外键是“A_id”和“B_id”。联接表称为A_B。 现在,我想加上C。我想A_B与C有关系,与C创建多对多关系,A_B我可以称之为A_B_C。 编辑:所以我会创建一个_B实体,A和B和A_B的关系为2 @OneToMany
问题内容: 我有桌子: 我想写一个返回BookName,FirstName,LastName,RubricName的SELECT查询。 我有两个单独的查询,但我不知道如何在一个选择中编写此查询。这就是我得到的: 它工作正常,但如何在一个选择中编写? 我尝试这样做,但是不起作用: 它返回错误: 问题答案: 试试这个查询
我目前正在用Laravel构建我的第一个应用程序,我偶然发现了一个问题,即我不知道如何设置模型(用户和组)之间的多对多关系。 我已经创建了一个板,其中存储了所有用户和他们所在的组之间的关系。我的问题是,我不知道如何访问和设置这在Laravel。我不确定我是否必须用户has很多或属性。 我正试图找到一种方法,将用户添加到组中,以便在UserGroups表中创建一个新条目。 我的桌子: 用户 ID 集
我使用的是Laravel 5.4,其模型和表格结构如下: 一个用户可以有多个账户 一个帐号可以被多个用户共享 每个账户有多个持有量 因此,用户通过他们的许多帐户间接拥有许多资产。 我需要帮助在用户模型上定义一个称为“持有量”的关系,以获得适用于用户的所有持有量(基于他们所链接的账户)。 我尝试了很多不同的东西,在谷歌上花了很长时间。我可以接近BelongToMany和hasManyThrough,
问题内容: 有三个表:,并且,医院能提供的医疗服务和语言服务。因此,存在两个多对多关系。 简单ERD 现在,我想使用和搜索医院数据。 DaoImpl: 而且,如果我想从三个表中按邮政编码,医疗类型和语言进行搜索,那么如何编写一个jsql。 警告: 错误:org.hibernate.hql.internal.ast.ErrorCounter- 预期加入的路径!希望加入的路径!在org.hiberna