2017-05-15 3 views
0

私はEloquent/Laravelでデータベースを設計しています。以下のことがベストプラクティスであるかどうかは疑問です。Eloquent inheritance

車のテーブルでは、いくつかの列は自動車の種類(荷重ボックスの寸法)に固有であり、いくつかの列はすべての車に共通です(色)。

種類によっては列が空白の表が1つあるか、車種ごとに異なる表を持つ方が良いですか?その場合、データベースレベルで継承を適切に実装する方法は?私は文書で見つけようとしましたが、唯一の参照は多様な関係です。

+0

多態性が必要です。あなたは、IDと型を持つ属性のようなテーブルを持っています。 idが1でエンジンがtypeの場合、id 1のエンジンテーブルを調べ、typeが1で、typeがtransmissionの場合、id 1の送信テーブルを調べます。車のタイプ?私は、あなたがしようとしていることのより多くの例を見たいと思う。 1台の車には色があり、別の車には色がないでしょうか? – mkaatman

答えて

1

ここでは簡単なピボットテーブルが役立ちます。これにより、一般的なパラメータを車で直接保ち、複数の車で型を再利用できるように、特定の車種を定義するのに役立ちます。理解を深めるためのサンプル構造。例えば

Car 
- id 
- name 
- cost 
- color 

Type 
- id 
- size 
- weight 

Car_type 
- car_id 
- type_id 

あなたはスペックXYZが付いている車を持っている場合、あなたは多くの色でこの車を持つことができます。上記のように、異なる色の複数の車を追加し、xyzのスペックを含む1つの車のタイプを使用することができます。