Database-Design

這種模式是否有名稱,通過將具有索引的列添加到單個表來表示一對多關係?

  • March 8, 2018

所以領域專家想要以下關係:

CarOwners(owner_id, name, address, car_1_registration, car_2_registration, car_3_registration, car_4_registration)

原因是大多數人不太可能擁有比這更多的汽車,並且比任意數量汽車的一般情況更容易推理。這似乎是 Excel 騎師的常見模式,而對於 DBA 來說,簡單地建立一個單獨的關係會容易得多:

Car(registration, owner_id)

但是這個想法很難賣給任何不知道 JOIN 是什麼的人。

我查看了數據庫文獻,找不到任何對這種(可以說是反的)模式的引用。也許它在理論上沒有任何問題(這只是不切實際),或者它太傻了,甚至連學術界都不會考慮。但聽到它是否真的被覆蓋會很有趣。

(這只是不切實際)

有趣的是,可能會達到目的。聰明人的智能技術。由於克服了這些問題,數據庫開始發揮他的作用。

主要問題是,如果’car_5_registration’ 出現在地板上,它是不可擴展的。

領域專家給了你一個偽裝成實現細節的需求。我將通過以下方式實現:

  • 根據需要實現關係表
  • 實現一個視圖,該視圖將為每個所有者提供最多 4 個關聯註冊

當所有者註冊第五次註冊時,系統應該可以正常工作(這可能是 DE 想要的),但他用於報告的視圖仍將僅顯示 4 次註冊。(也許視圖還可以包括每個所有者的註冊總數?)

這樣,您可能必須不時更改視圖(僅用於報告),而不必更改主表以及所有將受到影響的關係和程式碼。

引用自:https://dba.stackexchange.com/questions/199684