Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database MySQL工作台中完全可选的一对一关系_Database_Mysql Workbench_Entity Relationship - Fatal编程技术网

Database MySQL工作台中完全可选的一对一关系

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

MySQL workbench中完全可选的一对一关系?
我只能创建部分可选的一对一关系。
我的情况是:

一个可以分配一个问题
问题可分配给

编辑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