MySQL workbench 中完全可选的一对一关系

Fully optional one to one relation in MySQL workbench

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

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

编辑1:

EDIT2:也许更好的问题是是否应该避免完全可选的一对一关系?

让我们看看这是否能解决您的问题。

A GROUP can be assigned a PROBLEM

A PROBLEM can be assigned to a GROUP

从以下结构开始:

PROBLEM
id   |   title
 1   |   Prob1
 2   |   Prob2

GROUP
id   |   title
 1   |  Group1
 2   |  Group2 

同样重要的是要知道一个组是否可以一次分配多个问题。以及是否可以将一个相同的问题分配给多个GROUP。

假设存在严格的可选 1:1 关系。这意味着一个小组不能同时分配 2 个问题,也不能将 1 个相同的问题分配给 2 个小组。

A strict 1:1 将通过添加 table A 的 PK 作为 table B 的 FK 来实现。如果 FK 可为空,那么您会注意到这已经是一个可选 1:1,因为您可以留下空单元格,表示分配了 0 个问题(或分配了 0 个组)。

PROBLEM
id   |   title   
 1   |   Prob1   
 2   |   Prob2   

GROUP
id   |   title   |   problem
 1   |  Group1   |     2
 2   |  Group2   |    null

在这个例子中Group2已经被分配没有问题。 Group1 已分配给 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

仅通过此实施,您可能有 1 个小组被分配了 1 个以上的问题,并且有 1 个相同的问题被分配给了 1 个以上的小组。但是,如果您为两个字段(组和问题)中的每一个都定义了一个 UNIQUE 索引,那么您应该解决这个问题。