2013-07-12 64 views
0

我目前正在製作代理商CMS,並想詢問有關用戶的詳細信息。 因此,註冊表被分成2組,攝影師和模特。 模型可以選擇關於他們的身體類型的選項,如頭髮顏色,頭髮長度,身高和其他,但這些選項不需要攝影師。MySql多個表或一個大表?

我的問題是,哪種更有效?將所有東西都放在一張大桌子裏或者分開身體。

users_table <--- contains everything 

users_table <--- containing login details and a few basic information 
users_body_table <--- containing model body information 

如果有人可以給我一些信息關於這將是快樂的

謝謝鄉親

+0

你可以設想一個場景:a)模特拍攝照片和/或b)攝影師爲其拍攝照片? – Strawberry

+0

我個人會採用第二種方法 - 將數據分成兩個表格。我發現它「更乾淨」,只是更好:D – paranoid

+0

你應該把它分開。如果以後你有機構呢?然後,他們的具體信息也會被添加到你的大'users_table'中。另外,將這些信息分開更具關係性,並且可以更容易地修改關於模型(大小等)的數據,而無需修改用戶信息(登錄憑證,...) –

回答

3

從你的描述,我會確定推薦採用第二種方法 - 分割數據。

您應該注意到,在第一種方法中,您將有大約四分之一的表格填充空值。

關於空效果,你可以看到例如here

,將決定這是更有效的,最重要的是你需要多少隻得到攝影師或只是模型。對我來說很明顯,可能經常 - 因爲這一點,拆分桌子會更好。

也許如果你會遇到一些需要改變的話,只需要修改一個表就可以更容易地修改它(例如,如果添加一些新的Model特徵)。

想想未來normalization

1

方面有了分裂表,你可以很容易地通過一個表上運行,如果你只想獲取這些數據。 如果你的大桌子有很多數據,檢索的時間將會太多。如果將表映射到對象,最好有一個小對象。你也可以重用它....也許你可以使用視圖,如果你真的想要一張桌子(視圖是一張透明的動態桌子)

0

好方法是單獨的表格。 一臺共同的詳細信息(用戶)(登錄名,密碼等) 的模型(users_models)第二臺和第三臺的攝影師(users_photo)

在表的用戶,你可以爲店鋪ID 2場的模型和照片表。在這種情況下,一個用戶可以是模特或/和攝影師。