機器のリストを含むデータベースを作成しようとしています。すべての機器には特定の共通属性(メーカー、モデル番号、シリアル番号など)があり、特定の機器に固有の他の属性があります(つまり、モデムにはアクセス番号がありますが、ソーラーパネルには出力容量があります)。これらの変化する属性を優れたデータベース設計原則で表現する方法がわかりません。Webを検索してみましたが、何を検索すればよいか完全にはわかりません。
私は次の可能な解決策とそれらについての私の最初の考えを思いついた:
考えられるすべての属性を含む1つの大きなテーブルを用意し、該当しない場合はnullを入力します。明らかに、これにはいくつかの欠陥があります。
機器の種類ごとに個別のテーブルを用意してください。これは、使用するのが悪夢のようです。すべての機器のリストを印刷したい場合、どのテーブルを検索するかをどのように知ることができますか?
共通の属性を持つテーブルと、追加の属性を格納するための外部キーでアクセスされる各機器タイプの他のテーブルを用意します。私はおそらくこれを機能させることができましたが、それは面倒であり、非常に良い解決策のようには感じられません。
エンティティ属性値タイプのモデル。私がやりたいことにはあまり適していないようです。
私はデータベースの経験があまりないので、ここに行くにつれて学んでいます。この問題に関連するリンクや、データベース設計に関する「必読」の記事をいただければ幸いです。ありがとう!
編集:最初に、私はグーグルの「継承マッピング」が必要であることに気づきました。これは、同様の質問をしている他の人を助けるかもしれません。問題を解決するために、私は#2と#3のハイブリッドを使用することになりました。それは実際には非常に簡単で、うまく機能し、EAVの複雑さなしに追加の機器タイプを追加する問題を解決します。すべてのコメントと提案をありがとう!