あなたの部分にはいくつかの継承があります。一般的な属性は次のようです。
また、部品タイプの排気、ソフトウェア、および吸気にはいくつかの詳細があります。2 つの戦略があります。 - 3 つのテーブルと 3 つのテーブルに対する 1 つのビューを持つ - parttype 列を持つ 1 つのテーブルを持ち、テーブルの 3 つのビューになる場合があります。
自分のデザインを試してみたい場合は、私の会社の Web サイトhttp://www.uml2php.comをご覧ください。UML2PHP は、UML 設計をデータベース設計に自動的に変換し、その結果で「遊ぶ」ことができます。
http://service.bitplan.com/uml2phpexamples/carparts/で
、設計に沿ったサンプル アプリケーションを見つけることができます。メニューでは、まだメニューからすべてのテーブルにアクセスできるわけではありません。
経由:
http://service.bitplan.com/uml2phpexamples/carparts/index.php?function=dbCheck
テーブル定義にアクセスできます。
mysql> describe CP01_car;
+-------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------+------+-----+---------+-------+
| oid | varchar(32) | NO | | NULL | |
| car_id | varchar(255) | NO | PRI | NULL | |
| model | varchar(255) | YES | | NULL | |
| description | text | YES | | NULL | |
| model_year | decimal(10,0) | YES | | NULL | |
+-------------+---------------+------+-----+---------+-------+
mysql> CP01_part を記述します。
+-------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| oid | varchar(32) | NO | | NULL | |
| part_number | varchar(255) | NO | PRI | NULL | |
| price | varchar(255) | YES | | NULL | |
| car_car_id | varchar(255) | YES | | NULL | |
+-------------+--------------+------+-----+---------+-------+
mysql> cp01_exhaust を記述します。
+-------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| oid | varchar(32) | NO | | NULL | |
| type | varchar(255) | YES | | NULL | |
| part_number | varchar(255) | NO | PRI | NULL | |
| price | varchar(255) | YES | | NULL | |
+-------------+--------------+------+-----+---------+-------+
mysql> CP01_intake を記述します。
+-------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| oid | varchar(32) | NO | | NULL | |
| part_number | varchar(255) | NO | PRI | NULL | |
| price | varchar(255) | YES | | NULL | |
+-------------+--------------+------+-----+---------+-------+
mysql> CP01_software を記述します。
+-------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------+------+-----+---------+-------+
| oid | varchar(32) | NO | | NULL | |
| power_gain | decimal(10,0) | YES | | NULL | |
| part_number | varchar(255) | NO | PRI | NULL | |
| price | varchar(255) | YES | | NULL | |
+-------------+---------------+------+-----+---------+-------+
上記の表は UML モデルから生成されたものであり、結果はまだニーズに合っていません。特に10以上のテーブルを持つことを考えているなら、これが好きです. パーツを car テーブルにリンクするフィールド car_car_id は、すべてのテーブルで使用できる必要があります。設計提案によると、パーツのベース「テーブル」は次のようなビューになるはずです。
mysql>
create view partview as
select oid,part_number,price from CP01_software
union select oid,part_number,price from CP01_exhaust
union select oid,part_number,price from CP01_intake;
もちろん、car_car_id 列も選択する必要があります。
これで、すべてのテーブルを単独で編集できるようになり、partview にすべてのパーツが一緒に表示されます。部品タイプを区別できるようにするには、別の列「part_type」を追加することをお勧めします。