2011-12-15 60 views
1

我需要在數據庫中擁有大量的用戶數據。現在,我一直在想有兩個表,用戶,將有隻有ID用戶名密碼和另一個表用戶數據會擁有一切就像姓氏等等爲用戶數據創建多個數據庫表?

這是一個首選的方法?

+0

「這是一個首選的方法?」首選爲什麼?複雜?緩慢?隱私? – 2011-12-15 20:52:28

回答

1

最簡單的設計會把所有的字段在一個表中。但是,從這一點來看,您可能需要考慮將這些信息拆分爲多個表格。從你的描述中,我不能'告訴是否有任何正當理由這樣做。

如果你開始用一個表,你會發現它有利於分割數據等原因:

  • 規範化。
  • 減少爭(的應用程序更新不同信息的不同部分)
  • 真正巨大的列清單(看看你的數據庫的限制)
  • 其他? (如何保持你的應用程序,也許?)

總之,我會嘗試開始簡單,並有理由選擇更復雜的設計,如果你去那條路線。

0

該設計恕我直言,沒有什麼錯。您可以使用users表並將其鏈接到users_custom表,其中包含其他信息。只要符合你的設計。請記住,爲了獲得任何額外的用戶信息,您必須始終使用JOIN作爲該數據。

對我來說這是偏好的問題,如果你覺得這個表會隨着時間增長,考慮你的設計,如果不把一切都在一個表,你認爲有必要正確索引列。

您可以通過具有UserLog表,因爲他們改變建值的歷史觀走得更遠。

0

是的,它是:)在理論上有這種所謂的「範式」(3NF BCNF,等...)。使用它們,意味着表分隔條件爲較小的:)

0

我認爲這可能是你最好讓這一切在一個表中。假設您將執行唯一的用戶名,所有字段(密碼,名字和姓氏)對用戶名具有函數依賴關係。因此,您可以將它們全部放在同一個表中,並且仍然有一個標準化的數據庫。

雖然您可以單獨FIRST_NAME和姓氏爲自己的表,查詢,會得到很多容易(更少的連接),如果你把所有這些領域中的一個表。