2010-01-09 120 views
1

我正在建立一個MySQL數據庫,並將用PHP查詢它。最好將信息分解成多個表格,並在每個表格上進行選擇查詢。或者將所有項目放在一個表中並執行單個選擇查詢會更好嗎?MySQL數據庫組合和PHP選擇

例如:

它將於7臺高達車信息;這意味着他們將大約50列左右。

Table_design 1 
---------------------- 
table_all 
    username 
    car1_make 
    car1_model 
    car1_year 
    car1_condition 
    car1_tires 
    car1_color 
    car2_make 
    car2_model 
    car2_year 
    car2_condition 
    car2_tires 
    car2_color 
---------------------- 

Table_design 2 
---------------------- 
table_1 
    username 
    car1_make 
    car1_model 
    car1_year 
    car1_condition 
    car1_tires 
    car1_color 

table_2 
    username 
    car2_make 
    car2_model 
    car2_year 
    car2_condition 
    car2_tires 
    car2_color 
---------------------- 

回答

3

三張桌子。這樣您就不會受限於可以添加到汽車中的信息量。而且,您不限於用戶可以訪問的汽車數量。

如果您需要用戶的電子表格,請查詢users表。如果您需要汽車庫存,請查詢cars表。如果您需要知道每個用戶與哪些車輛相關聯,請查詢userscars

參見Database Normalization

  • 用戶
    • 用戶ID
    • 用戶名
    • 用戶姓
  • 汽車
    • 汽車ID
    • 汽車品牌
    • 汽車模型
  • usercars
    • 用戶ID
    • 汽車ID
+0

由於Make/Model信息相當靜態,我不喜歡代理PK的用法。如果你被困在上面,我至少會選擇Make + Model(這是真正的PK)來防止輸入同一個Make + Model中的多個「汽車」條目。通過這種方式,表格內容實際上會被重用而不是重複。我還會在車表中添加YEAR列,並將其包含在英國的make + model中。 – 2010-01-11 21:36:23

1

喬納森說什麼,雖然他的表結構是多到很多,這個ISN除非有多人可能擁有同一輛車,否則不得要求。

* users 
     o User ID 
     o User First Name 
     o User Last Name 
* cars 
     o Car ID 
     o User ID 
     o Car Make 
     o Car Model 

更有意義,更容易查詢。

+0

除了汽車桌子不是真正的獨特的汽車。它實際上只是存儲「品牌和型號」的真正PK的替代品。所以很可能一個用戶可能擁有多個相同品牌車型。 – 2010-01-11 21:31:57