2012-07-29 24 views
0

我需要一個單獨的mysql表來包含靜態和動態數據 所以第一個數據是像名稱電子郵件地址等標準的錯誤,並且在該行內我需要一個新的維度與動態數據像上次更新(日期) 例如多維mysql表

Person 1| name| address| age|work record---> within-> work record: experience|Qualifications 
person 2| name| address| age|work record 
person3 | name| address| age|work record 

這樣的人1可以僅具有的經驗和人2的一列可以具有如圖5所示,所以我需要一個新的層面,以避免爲每個人建立一個單獨的表。這可以在MySQL中完成嗎?

+0

聽起來像一個普通的[一對多](http://sqlrelationship.com/one-to-many-relationship/)關係... – DCoder 2012-07-29 11:41:51

回答

1

這樣做的正確方法是有經驗和資格的第二個(和第三個)表。 (如果要存儲的數據類似,可以將這兩個表抽象到同一個表中)

然後,您將使用1-n關係到您的「person」-table,使用person-table的主鍵作爲經驗和資格表中的外鍵。

該表時會是這個樣子:

PERSON table: 
------------- 
PersonID (Primary Key) 
Name 
Address 
Age 

QUALIFICATION table: 
-------------------- 
QualificationID (Primary Key) 
PersonID (Foreign key to Person table) 
Qualification-field1 
Qualification-field2 
Qualification-fieldn 

EXPERIENCE table: 
----------------- 
ExperienceID (Primary Key) 
PersonID (Foreign key to Person table) 
Experience-field1 
Experience-field2 
Experience-fieldn 

使用約束你能確保你不能有經驗的記錄,引用不存在的個人記錄。

+0

這是超級,謝謝,我會嘗試出 – user1559811 2012-07-29 12:26:33

+0

所以如果我想插入valeus('x','y'z')INTO人1,資格如何去? – user1559811 2012-07-29 12:32:57

+0

插入資格值VALUES(KEY,1,'x','y','z') - 用一些在整個資格表中唯一的序列號代替「key」。 – Kerbocat 2012-07-29 12:51:52