多维mysql表

时间:2012-07-29 11:34:46

标签: 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中完成吗?

1 个答案:

答案 0 :(得分:2)

这样做的正确方法是获得经验和资格的第二(和第三)表。 (如果要存储的数据相似,可以将这两个抽象到同一个表中)

然后,您将使用与“person”-table的1:n关系,使用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

使用约束可以确保您不能拥有引用不存在的PERSON记录的EXPERIENCE记录。