2013-07-11 40 views
0

我有一個表格,大部分是非常基本的。例外情況是兩個字段分組在一起,我希望我的用戶能夠爲這些分組字段創建多個值。例如,我的表單看起來像這樣:MySQL數據庫結構中一個字段的數值未知數的表格

Your Name 
Email Address 
{Dog's Name 
Dog's Breed} 

2個狗字段是相關/組合在一起的字段。在這兩個字段下方,我會有一個按鈕,詢問用戶是否要添加另一隻狗。一旦點擊此按鈕,將出現2個全新的狗的名字和狗的品種字段。

我的問題是我應該如何構建我的數據庫這些值進入?是否最好有一個提交表只保存該人員的姓名和電子郵件地址 - 然後 - 創建一個單獨的表格,該表格只保存狗的名字和品種,並帶有一個將每隻狗與提交表中的條目相關聯的ID(外鍵) ?

OR

是它在某種程度上可能只有一個表(意見書),其有姓名,電子郵件列,狗的名字,狗的品種,但持有的狗的名字和狗的品種領域內的多個值嗎?

我希望我清楚地解釋這一哈哈:)

+1

第一條路線是單獨的表格符合[1NF](https://en.wikipedia.org/wiki/First_normal_form)的方式。 – eggyal

回答

0

表1:用戶 列:ID(自動遞增),名稱的emailadress

表2:狗 列:ID(自動遞增),uid(= user_id),名稱,品種

提交時,檢查用戶是否存在(可通過檢查電子郵件地址來完成)。如果沒有,請插入用戶並記住last_insert_id() 如果用戶存在,請選擇其ID。

通過你的狗陣列

現在循環,把它們插入到狗表,與$ UID,我們才發現

你想單獨的表,其原因就在於,你現在可以爲每個人的狗無限量。


你可以做得更好;) 表3:dog_breeds 列:ID(AUTO_INCREMENT),名

現在改變從狗表的 '品種' 的ID屬於品種。通過這種方式,您可以控制輸入的品種數量,這可能有助於防止出現雙重名稱,例如「姓名」和「姓名」(對人類而言,這是相同的)

相關問題