0

これらは私のデータベースのテーブルです。いくつかのスーパークラス/サブクラス構造を作成する必要があります。

最初はどこ...

Superclass-Crew_Member

サブクラス - ディレクター、プロデューサー、Other_Directing、Other_Production、Art、Camera、Sound、Grip、Electrical、Post。

2つ目は...

スーパークラスプロデューサー

サブクラス - 給与、予算

+---------------------+
| 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 (スーパークラス) に含まれるものです。

+-------------+-------------+------+-----+-------------------+----------------+
| 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 を除く) は、同様の方法で作成されます。

4

2 に答える 2

0

ええ、これは本当に良い質問です。私も調査していました。

私が思いついたアイデアは次のとおりです。
1> 外部キーで結合された各サブクラスの属性のサテライト テーブルを持つスーパー クラスとして親テーブルを持ちます。その後、それをビューとして表すことができます。

2>親テーブルをスーパークラスとして、すべての追加属性用に別の単一テーブルを用意します。これは、2 つの外部キーを結合して一致させる必要があります。

3> すべてのクラスを保持する 1 つのテーブル (ひどいアイデア)

他にもアイデアはありますが、最初の案がベストだと思います。

最初の方法を示唆する詳細情報は次のとおりです。

http://www.tomjewett.com/dbdesign/dbdesign.php?page=subclass.php

于 2015-06-29T19:18:25.203 に答える
0

データベースを作成するときに考慮しなければならないいくつかの一般的なルールに従うことから始めることができます。異なるグループに共通する情報を 1 つのテーブルに配置し、特定のデータを小さなサテライト テーブルに配置します。

乗組員に関する一般的な情報を最初のテーブルに入れます。つまり、ID、名前、住所、およびすべてのメンバーに共通する情報がすべて含まれます。次に、値「crew_member_id」を介して「crew-member」テーブルに関連する「サブテーブル」を作成します。このテーブルには、ディレクター、プロデューサーなどに関連する特定の情報のみを入れます.

したがって、ここのフィールドは次のようになります: id、crew_member_id、監督された映画など..

スーパークラス プロデューサーを使用する場合でも、同じように作業する必要があります。サブテイルとスーパークラスをその主キーを介して関連付けて、それらの間に関係を持たせます。

データベース設計に関するいくつかの記事を読むことをお勧めします。データベースが作成された後、間違いを修正するのがはるかに難しくなるため、将来的にはあなたの命を救うかもしれません.

http://www.datanamic.com/support/lt-dez005-introduction-db-modeling.html

于 2013-11-12T08:14:13.897 に答える