2011-11-14 38 views
1

我打算商店網站地圖,每個URL哪個更好,使用多行,表或者列在MySQL

相關數據想知道哪個更好:

  1. 創建每個用戶的新表/網站

  2. 針對每個網站,保存所有的URL(其數據或在單獨的列中),爲陣列中的1行

  3. 保存每個URL一個s的主站作爲標識符

解釋單獨的行:

  1. 每個用戶都會有他自己的表,在自己的行中的所有網址

  2. 表將列: ID,用戶,網站,網址

對於同一網站的所有網址,它會將它們保存爲排列Ÿ旁邊特定的網站和用戶

  1. 相同的列,但每個地圖將創建每行

回答

2

1個網址許多行一個好的設計應該是這樣的:

表1(用戶 - >網站一對多關係):

User (PK) | Website (FK) 

表2(網站 - >的URL一對多關係):

Website (PK) | URL 

PK =主鍵
FK =外鍵

我認爲這是類似於您的選項3相同或分離成兩個表不存儲冗餘網站屬於中的每一行用戶。

你也可以做一個網站表,只是存儲網站的ID相關聯:

Website Id (PK) | URL  

如果你的網站的主要URL存儲在該表中,像「stackoverflow.com然後將相關網址存儲在(網站 - > URL)關係表中,如「questions/8116983/which-is-better-using-multiple-rows-tables-or-arrays-in-mysql」。

然後,您可以使用表1和2中的網站標識代替網站。

+0

感謝您的答覆,是的,我會加入你的建議吧 想排除哪種方式更好,更快,單獨的表,數組或正常行, 貌似具有行是好的,通過減少每行中的內容通過刪除url的開頭,如您所說,在單獨的表中 –

+0

如果您想了解更多關於良好數據庫設計的知識,您可能需要查詢數據庫規範化。 BCNF可能是一個開始的好地方。 – Paulpro

+0

好吧,我會閱讀關於正常化:) –

0

您不想爲每個用戶創建一個新表。把它放在一張桌子上。

+0

ookk我可以在哪裏清除這類事情的概念, –

相關問題