私は数日間この問題の解決策を探していましたが、私が望むことを達成するための「ベストプラクティス」や良い説明は見つかりませんでした。データベース設計 - 複数のオブジェクトタイプが階層化されていますか?
私は次の表で構成されたデータベースを持っているとします(例のみ)。
Customers (Fields: Id, CustomerName, Location)
Products (Fields: Id, ProductName, ProductCode)
Groups (Fields: Id, GroupName)
これらをリンクして、ツリービューに表示する必要があります。例えば;
Customer1
|
|-Group1
| |-Product1
| |-Product2
|
|-Group2
|-Product2
|-Product3
|-Group3
|
|-Product1
|-Product4
これは単なる例です。実際のソリューションは他のタイプから成り立っています。
製品はいくつかの場所で発生する可能性があるため、階層データを表示するには「リンクテーブル」 を作成する必要があります。
私はこのような別のテーブルを作成しました。
Id (int)
ParentId (int)
ObjectType (int)
GroupId (int)
ProductId (int)
CustomerId (int)
理由は、どのデータベースでアイテム名などがツリービューに表示されるかを確認する必要があることを知ることです。
私の質問:このデータベースを設計する他の方法はありますか? LINQなどを使用してC#で開発しています。
をしますより良い見通しのために論理的にグループ化する。顧客は、私のユーザーが製品をグループ化する目的、場所、場所が異なる場合があります。 私のテーブルにchildId/childObjectTypeを持つために得られるものは何ですか? データベースにクラスオブジェクトを格納することができれば、はるかに簡単になるはずです:) – Peter