MySQL工作臺中完全可選的一對一關係?
我只能創建部分可選的一對一關係。
我的情況下是:MySQL工作臺中完全可選的一對一關係
甲GROUP可以被分配問題
甲問題可以被分配到一個GROUP
編輯2:如果完全可選的一對一關係應該避免,也許更好的問題是?
MySQL工作臺中完全可選的一對一關係?
我只能創建部分可選的一對一關係。
我的情況下是:MySQL工作臺中完全可選的一對一關係
甲GROUP可以被分配問題
甲問題可以被分配到一個GROUP
編輯2:如果完全可選的一對一關係應該避免,也許更好的問題是?
讓我們看看是否有任何解決您的問題。
一組可分配的問題
一個問題可以被分配到一組
與如結構開始:
PROBLEM
id | title
1 | Prob1
2 | Prob2
GROUP
id | title
1 | Group1
2 | Group2
什麼還重要的是瞭解某個組織是否可以一次分配多個問題。並且是否可以將同一個問題分配給多個GROUP。
假設有嚴格的可選1:1關係。這意味着一個組不能同時分配兩個問題,同一個問題不能分配給兩個組。
通過添加表A的PK作爲表B的FK,可以實現嚴格的1:1。如果FK爲空,那麼您會注意到這已經是可選的1:1,因爲您可能會留下空單元表示分配了0個問題(或分配了0個組)。
PROBLEM
id | title
1 | Prob1
2 | Prob2
GROUP
id | title | problem
1 | Group1 | 2
2 | Group2 | null
在這個例子中Group2沒有被分配任何問題。組1已分配Prob2和Prob1已被分配到任何組。
你不是被迫分配任何東西,但一切可能有1:1的關係。
該結構可能意味着相當多的空(空)值。這不是最佳做法,但會完成這項工作。如果你想避免空值,那麼你可能不得不去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個相同問題分配給多個組。但是,如果你爲兩個字段(組和問題)的每一個定義了一個UNIQUE索引,那麼你應該修復這個問題。
一個組只能分配1個問題?並且問題只能分配給1個組? –
是的,一個組可能會被分配一個問題,而一個問題可以被分配給一個組。我不太清楚如何建模。我希望能夠創建組和問題而不必分配任何東西。 – Duy
我真的可以放棄關係,並有一個problem_id作爲普通列嗎? – Duy