簡體   English   中英

多對多(實際上太多)關系的數據庫設計

[英]Database design for many(few) to many(actually too many) relationship

我有兩個表,用戶和程序。 現在,我只有5-10個程序,成千上萬的用戶可以注冊任何程序(也可以注冊多個程序)。 因此,在存在多對多關系的情況下,我正在考慮創建一個單獨的表,例如link_user_program,以存儲用戶注冊了哪些程序。

但是,如果我有成千上萬的用戶並且只有10個程序,這會不會比僅存儲在用戶表中存儲的程序(可能是逗號分隔的程序ID或每個程序的布爾列) 消耗更多的空間並增加查詢時間

以上兩種設計的優缺點是什么,還是有更好的選擇? 如果將來可能會添加新程序(但仍然遠遠少於用戶數量)怎么辦?

從OO域設計的角度來看,建議使用多對多鏈接表; 不用擔心多余的空間,在查詢時間上,您可以設置索引以提高性能。

沒有鏈接表,如果將來會使您難以添加/刪除問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM