Я создаю базу данных (упрощенную здесь) для хранения деталей. Каждая часть имеет свой собственный уникальный PartID. Мы можем хранить детали в различных контейнерах:Связывание данных с несколькими объектами в базе данных
- многоразовые мешки
- Коробки
- Паллеты
Очень важно, что мы имеем конкретную различную информацию для каждого контейнера:
- Сумки: ID, MaterialType, Volume, HandleType
- коробки: ID, высота, ширина, длина
- паллеты: ID, DateCreated, NumberOfTimesUsed, цвет
Мой вопрос: Каков наилучший способ связать части к эти несколько контейнеров?
На мой взгляд, самым простым способом является создание столбцов ContainerType и ContainerID в таблице Part. Я не решаюсь это сделать, потому что вы существенно нарушаете ссылочную целостность, имея столбец с неучтенным внешним ключом для нескольких таблиц, потому что это незаконно.
Мы можем изготовить большой контейнерный стол со всеми возможными свойствами контейнера, но это тоже очень громоздко.
Любая помощь или руководство будет принята с благодарностью!
Лично я бы создал таблицу 'container' с идентификаторами столбцов, ContainerType, MaterialType, Volume, HandleType, Height, Width, Length, DateCreated, NumberOfTimesUsed,' и 'Color'. У вас будет тонна значений NULL, но это упростит объединение, и вы можете избежать повторения большого количества данных в таблице деталей. Вы просто присоединитесь к идентификационному номеру. –