就性能和可伸縮性而言,這將是更好的方法來執行MySQL中的一對多映射。映射一對多關係時應該有單獨的表嗎?
使用單獨的列,但粘到2個表:
(人):ID,名稱
(電話):ID,數量,類型,PERSON_ID
使用附表:
(person):id,name
(phon E):身份證,數量,類型
(person_phone):ID,爲person_id,phone_id
就性能和可伸縮性而言,這將是更好的方法來執行MySQL中的一對多映射。映射一對多關係時應該有單獨的表嗎?
使用單獨的列,但粘到2個表:
(人):ID,名稱
(電話):ID,數量,類型,PERSON_ID
使用附表:
(person):id,name
(phon E):身份證,數量,類型
(person_phone):ID,爲person_id,phone_id
這裏只有一個正確答案,而且這是第一個。
你的想法的第二個是你如何模擬多對多關係,而不是一對多。
第二個暗示不同的人可以共享相同的電話號碼,這是BS – Bohemian
它是「BS」?呃,我的妻子和我共用同一個電話多年。 –
這只是一個例子,夥計們。他的實際問題是「映射一對多關係時」。保持冷靜:) –
在性能方面,避免連接總是比較便宜,這會增加要查詢的行數的多樣性。
只要一個電話只能由一個員工使用(一個真正的一對多),第一個選項是最好的。
當然,在其他領域有最小化聯接的權衡。否則,每個人都會使用單表數據庫(這不像聽起來那麼可笑......他們曾經有過相當大的跟隨)。但是,加入'JOIN's來添加它們不會對你的表現有任何好處。 –
第一個比較好。
P.S.也許你甚至不需要id
手機,(number, type, person_id)
就夠了。
太糟糕了,我只能調高一次,需要一個單獨的upvote for P.S. :) – Shoaibi
在什麼情況下,你想象做兩個連接來獲取所需的數據將比單個連接更快? – R0MANARMY
我提到了性能和scabaility。我想知道是否有一個單獨的表會使它更具可擴展性。 – Shoaibi
@Dan:可能會破壞多個數據庫服務器上的模式? [警告咖啡因的水平很久以前就達到了,所以這可能不是最好的說法] – Shoaibi