这些是我的数据库中的表,我需要创建几个父类(super class)/子类结构。
第一个是...
super 船员成员
子类 - 导演、制片人、其他_导演、其他_制作、艺术、摄影、声音、握力、电气、后期。
第二个是...
super 生产者
子类-工资、预算
+---------------------+
| Tables_in_film_crew |
+---------------------+
| art |
| budget |
| camera |
| crew_member |
| director |
| electrical |
| equipment |
| grip |
| location |
| manufacturer |
| other_directing |
| other_production |
| post_production |
| producer |
| salaries |
| sound |
+---------------------+
那么我到底该如何去建立这些关系呢?
编辑:
也许我也应该澄清一些其他事情。
以下是crew_member(父类(super class))中包含的内容:
+-------------+-------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+-------------------+----------------+
| Member_ID | int(5) | NO | PRI | NULL | auto_increment |
| Member_Name | varchar(25) | YES | | [INSERT EXAMPLE] | |
| DOB | date | YES | | [INSERT EXAMPLE] | |
| Address1 | varchar(25) | YES | | [INSERT EXAMPLE] | |
| Address2 | varchar(25) | YES | | [INSERT EXAMPLE] | |
+-------------+-------------+------+-----+-------------------+----------------+
同时,这是 Other_Directing(示例子类)中包含的内容:
+---------------+--------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+--------+------+-----+---------+----------------+
| O_Director_ID | int(4) | NO | PRI | NULL | auto_increment |
| FAD_ID | int(5) | NO | MUL | NULL | |
| SAD_ID | int(5) | NO | MUL | NULL | |
| SUD_ID | int(5) | NO | MUL | NULL | |
+---------------+--------+------+-----+---------+----------------+
现在所有外键都引用来自 Crew_Member 的 Member_ID。所有其他表(Director 和 Producer 除外)均以类似的方式创建。
最佳答案
您可以首先遵循一些在创建数据库时必须考虑的一般规则。将不同群体共有的信息放在一张表中,将具体数据放在较小的卫星表中。
我会将有关机组人员的一般信息放在第一个表中: 所以我们会有一个身份证、姓名、地址以及所有成员的共同点。 然后,您通过值crew_member_id 创建与“crew-member”表相关的“子表”。在此表中,您仅输入与导演、制片人等相关的具体信息。
所以这里的字段可能类似于:id、crew_member_id、导演电影等。
即使使用父类(super class)生成器,您也应该以相同的方式工作。通过主键将子故事与父类(super class)相关联,以建立它们之间的关系。
我建议您阅读一些有关数据库设计的文章。它可能会在未来挽救你的生命,因为数据库创建后,纠正错误就变得更加困难。
http://www.datanamic.com/support/lt-dez005-introduction-db-modeling.html
关于mysql - 如何在MySQL中实现父类(super class)/子类结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19923839/