2012-07-29 69 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