Database MySQL工作台中完全可选的一对一关系
MySQL workbench中完全可选的一对一关系?Database MySQL工作台中完全可选的一对一关系,database,mysql-workbench,entity-relationship,Database,Mysql Workbench,Entity Relationship,MySQL workbench中完全可选的一对一关系? 我只能创建部分可选的一对一关系。 我的情况是: 一个组可以分配一个问题 问题可分配给组 编辑1: EDIT2:如果完全可选的一对一关系应该避免,也许一个更好的问题是?让我们看看这些是否解决了您的问题 一个小组可以被分配一个问题 可以将问题分配给一个组 从以下结构开始: PROBLEM id | title 1 | Prob1 2 | Prob2 GROUP id | title 1 | Gro
我只能创建部分可选的一对一关系。
我的情况是: 一个组可以分配一个问题
问题可分配给组 编辑1:
EDIT2:如果完全可选的一对一关系应该避免,也许一个更好的问题是?让我们看看这些是否解决了您的问题 一个小组可以被分配一个问题 可以将问题分配给一个组 从以下结构开始:
PROBLEM
id | title
1 | Prob1
2 | Prob2
GROUP
id | title
1 | Group1
2 | Group2
同样重要的是要知道一个小组一次是否可以分配多个问题。以及是否可以将同一问题分配给多个组
假设存在严格的可选1:1关系。这意味着一个组不能同时分配两个问题,并且不能将同一个问题分配给两个组
通过将表A的PK添加为表B的FK,可以实现严格的1:1。如果FK可为空,则您会注意到这已经是可选的1:1,因为您可能会留下空白单元格,表示分配了0个问题(或分配了0个组)
在本例中,分配给Group2没有问题。组1已分配Prob2,而Prob1未分配给任何组
您不必分配任何内容,但所有内容都可能具有1:1的关系
此结构可能意味着相当多的空(null)值。这不是最佳做法,但会起到作用。如果希望避免空值,则可能必须使用N:M实现
PROBLEM
id | title
1 | Prob1
2 | Prob2
GROUP
id | title
1 | Group1
2 | Group2
GROUP_PROBLEM
group | problem
1 | 2
仅使用此实现,您就可以将一个组分配给多个问题,并将一个相同的问题分配给多个组。但是,如果您为两个字段(组和问题)中的每一个定义了一个唯一的索引,那么您应该解决这个问题。一个组只能分配一个问题?一个问题只能分配给一个小组?是的,一个小组可以分配一个问题,而一个问题可以分配给一个小组。我不太确定如何建模。我希望能够在不分配任何内容的情况下创建组和问题。我是否可以删除关系并将问题id作为普通列?当然可以将问题id作为组表的FK。这是第一步,请阅读我的答案以了解更多细节和调整。
PROBLEM
id | title
1 | Prob1
2 | Prob2
GROUP
id | title
1 | Group1
2 | Group2
GROUP_PROBLEM
group | problem
1 | 2