你知道這是非辨識或辨識關係的例子嗎?
我使用 MySQLWorkbench 來建模圖表。但我對辨識和非辨識關係有些懷疑。似乎項目的所有關係都在辨識。
例如,一個會議有一個創建會議的使用者。所以會議表有一個“user_id”列來儲存創建會議的使用者的id。使用者可以創建許多會議,因此使用者和會議表之間存在一對多的關係。但我不明白它是辨識關係還是非辨識關係。也許它是一種辨識關係,因為會議桌,多方的軍刀,有列 user_id,所以是辨識?但似乎幾乎所有的關係都在辨識。
例如,一個會議可以有多種票證類型,因此會議和票證類型表之間存在一對多的關係。票證類型也有一個列“conference_id”,所以它也應該辨識?
此外,一個會議可以有許多註冊,因此會議和註冊之間存在一對多,因此在系統資料庫中有一個“conference_id”列。它也辨識對嗎?
另外一個註冊可以關聯很多參與者,所以註冊和參與者表之間是一對多的,所以參與者表有一個“registration_id”列,它也可以辨識嗎?
user_id 是辨識會議所必需的嗎?如果沒有 user_id,您是否仍然能夠明確區分一個會議和另一個會議?
我的猜測是肯定的,因為我認為 place_id (加入會議中心表)和 place_date 唯一標識會議。如果是這樣,那麼您在會議表和使用者表之間存在非辨識關係。
例如:在棒球數據庫中,球隊/球員是辨識關係還是非辨識關係?一支球隊似乎是辨識球員的必要組成部分,但請想一想:如果球員在賽季之間是自由球員怎麼辦?那麼他可能會在很長一段時間內不屬於一個團隊。
這需要一些時間來充分考慮。試試這些解釋:
辨識關係是子表中的行的存在取決於父表中的行……正式地,這樣做的“正確”方法是使外鍵成為子表主鍵的一部分。但邏輯關係是,沒有父母,孩子就無法存在。
和
非標識關係是當父級的主鍵屬性不能成為子級的主鍵屬性時
這是我喜歡的另一個例子:https ://www.datanamic.com/support/relationshiptypes.html