Я боролся и искал решение об этом в течение нескольких дней, но я не могу найти «лучшие практики» или хорошие объяснения того, как добиться того, чего я хочу.Дизайн базы данных - Несколько типов объектов показаны иерархическими?
Допустим, у меня есть база данных, состоящая из следующих таблиц (всего лишь пример);
Customers (Fields: Id, CustomerName, Location)
Products (Fields: Id, ProductName, ProductCode)
Groups (Fields: Id, GroupName)
Мне нужно связать их вместе, чтобы они отображались в Treeview. Например;
Customer1
|
|-Group1
| |-Product1
| |-Product2
|
|-Group2
|-Product2
|-Product3
|-Group3
|
|-Product1
|-Product4
Как я уже сказал, это всего лишь пример. Реальное решение состоит из других типов.
Поскольку продукты могут возникать в нескольких местах, мне нужно создать «таблицу ссылок» для отображения иерархических данных.
Итак, я создал другую таблицу, похожую на это;
Id (int)
ParentId (int)
ObjectType (int)
GroupId (int)
ProductId (int)
CustomerId (int)
Причина поля ObjectType должен знать, в какую базу данных мне нужно проверить для элементов имя и т.д., чтобы отобразить в виде дерева.
Мой вопрос сейчас: Есть ли другой способ создать эту базу данных? Я разрабатываю в C# с использованием LINQ и т. Д.
Объект группа будет просто заполнитель (прямо сейчас), чтобы логически группировать продукты для лучшего обзора. У клиента могут быть разные цели, сайты или местоположения, которые мои пользователи будут группировать. Что я получу, чтобы иметь childId/childObjectType в моей таблице? Все должно быть намного проще, если бы я мог хранить объекты класса в базе данных :) – Peter