Database-Design
這種模式是否有名稱,通過將具有索引的列添加到單個表來表示一對多關係?
所以領域專家想要以下關係:
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 次註冊。(也許視圖還可以包括每個所有者的註冊總數?)
這樣,您可能必須不時更改視圖(僅用於報告),而不必更改主表以及所有將受到影響的關係和程式碼。