剧院员工数据库设计
问题描述:
我需要设计数据库,这将保存有关员工的信息。他们可以分为几类:演员,导演或音乐家。这些类别也可能在一些类别上分开。所以,我拥有员工类别树。而我有演出表,那必须有导演的外键。剧院员工数据库设计
我可以制作表格吗?它包含有关员工的常用信息,并且具有用于分类树表的外键?它是正确的吗?
employee_categorie
+-----------------+----------+
| name | encoding |
+-----------------+----------+
| actor | 1 |
| subactor1 | 1.1 |
| subactor2 | 1.2 |
| director | 2 |
| first_director | 2.1 |
| second_director | 2.2 |
+-----------------+----------+
employee
+-------------+------------+-----------+-----------------------+
| employee_id | first_name | last_name | employee_categorie_id |
+-------------+------------+-----------+-----------------------+
| 1 | Joshu | Willis | 1.1 |
| 2 | Genry | Ford | 2.1 |
| 3 | Jeff | Bridge | 1.2 |
| 4 | Silvester | Obama | 2.2 |
| 5 | Mark | Watney | 2.2 |
+-------------+------------+-----------+-----------------------+
performance
+----------------+------------------+-------------------------+
| performance_id | performance_name | performance_director_id |
+----------------+------------------+-------------------------+
| 1 | Godzilla | 5 |
| 2 | Alice | 4 |
| 3 | God is dead | 5 |
+----------------+------------------+-------------------------+
对不起,我的英语不好。
答
基于我们在评论中交谈中,我建议增加一个表performance_employees:
performance_employees
+----------------+-------------+-------------+
| performance_id | employee_id | category_id |
+----------------+-------------+-------------+
| 1 | 1 | 1.1 |
| 1 | 2 | 2.1 |
| 1 | 3 | 1.2 |
+----------------+-------------+-------------+
,并在性能表外键添加到该表演员。此外,还要将检查约束添加到性能表中,以确保director列实际指向a类别id指向director的记录。
+0
谢谢,但我不明白,为什么有必要为performance_employees演员添加一个外键,以及如何它看起来像。 –
+0
对不起,这是一个错字。它应该是导演,而不是演员。 –
导演也是演员的情况如何?您不想在员工表中保留该类别的列,最好添加另一个表以创建类别和员工之间的多对多关系。 –
谢谢,我知道,为简单起见,我没有包含这张表。我更有兴趣知道是否正确使用树表。 –
您是否需要保留与单一表现相关的员工名单? (导演,演员等) –