如何在MySQL中实现超类/子类结构?
这些是我数据库中的表,我需要创建两个超类/子类结构 第一个是 超班船员 子类导演、制片人、其他导演、其他制作、艺术、相机、声音、把手、电气、邮政 第二个是 超类生产者 子类工资、预算如何在MySQL中实现超类/子类结构?,mysql,database,database-design,Mysql,Database,Database Design,这些是我数据库中的表,我需要创建两个超类/子类结构 第一个是 超班船员 子类导演、制片人、其他导演、其他制作、艺术、相机、声音、把手、电气、邮政 第二个是 超类生产者 子类工资、预算 +---------------------+ | Tables_in_film_crew | +---------------------+ | art | | budget | | camera | | crew_member
+---------------------+
| 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(超类)中包含的内容:
同时,以下是其他_指令(示例子类)中包含的内容:
现在,所有外键都指向来自机组成员的成员ID。所有其他表(Director和Producer除外)都是以类似的方式创建的 首先,您可以遵循一些在创建数据库时必须考虑的一般规则。将不同组共有的信息放在一个表中,将特定数据放在较小的附属表中 我会把船员的一般信息放在第一个表中: 因此,我们将有一个id、姓名、地址以及所有成员的共同点。 然后,通过值crew_member_id创建与“crew member”表相关的“子表”。在此表中,您仅放置与导演、制片人等相关的特定信息 所以这里的字段可能是:id、船员id、导演电影等等 即使使用超类生成器,您也应该以同样的方式工作。通过父类的主键将子类与父类关联起来,以在它们之间建立关系 我建议您阅读一些关于数据库设计的文章。这可能会在将来挽救您的生命,因为在创建了数据库之后,更正错误变得更加困难
是的,这是一个非常好的问题,我也在研究这个问题 我想到的想法是:
1> 有一个父表作为超类,每个子类的属性都有一个由外键连接的sattelite表。然后可以将其表示为视图 2> 有一个父表作为超类,另一个表用于所有额外属性。这必须由两个外键进行匹配 3> 一张可以放所有班级的桌子。(糟糕的主意) 还有其他想法,但我认为第一个是最好的选择 以下是建议第一种方法的更多信息
谢谢你提供的信息,但显然我应该更具体一些。我已经添加了更详细的信息,我相信这些信息与您所说的需要如何构建相关;我真正不明白的是如何建立这些关系。
+-------------+-------------+------+-----+-------------------+----------------+
| 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] | |
+-------------+-------------+------+-----+-------------------+----------------+
+---------------+--------+------+-----+---------+----------------+
| 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 | |
+---------------+--------+------+-----+---------+----------------+