powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Включить список одной сущности в две разные
3 сообщений из 3, страница 1 из 1
Включить список одной сущности в две разные
    #35373126
memory_leak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется две сущности -
Сущность "первая" состоит из следующих полей
- дата
- склад
- валюта
- продавец (организации)
детализация
- товар
- кол-во
- цена
- сумма
Сущность "вторая" состоит из следующих полей
- дата
- склад
- покупатель (организация)
детализация
- товар
- кол-во
- цена
- сумма

Как видите детализация ни чем не отличается.
Причем первая и вторая сущности включает в себя любое количество детализаций.
Вот как бы это спроектировать???
Есть мысли завести табличку
"Тип сущности"
- первый тип
- второй тип

И ввести в первую и вторую сущность ее тип.
И в сущность детализации ввести 2 внешних ключа : id (той сущности что содержит список детализаций) и тип сущности(первая\вторая).
Как Вам такой подход? Или может есть лучше?
...
Рейтинг: 0 / 0
Включить список одной сущности в две разные
    #35373343
Чорный Бада
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть лучше, проще и стандартнее. Заведи одну общую таблицу для обеих сущностей - в неё одно поле для ИД, другое для типа (1, 2), туда же все атрибуты общие для обеих и все атрибуты уникальные для каждой. Добавь CHECK, что либо тип 1 и все атрибуты специфичные для второй тогда NULL или наоборот тип = 2 и все атрибуты специфичные для первой тогда NULL (в общем этот CHECK делать не так обязательно, но потом может избавить от многих проблем). Потом заводишь одну таблицу для детализации (у ней все аттрибуты одни и те же для обеих сущностей, как я понял) и делаешь один единственный FOREIGN KEY на первую таблицу.
...
Рейтинг: 0 / 0
Включить список одной сущности в две разные
    #35391216
_VVP_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Общепринято строить хранилища документов по принципу: 1 тип документа в 1 структуру БД, состоящую из 2-х частей (таблиц) - заголовок документа и строки (табличная часть) документа. Если у документа физически несколько табличных частей, то делается столько же таблиц строк документа.
Другое дело, что для унификации выборки и записи БД все таблицы заголовков и строк документов делаются максимально похожими - поля таблиц, несущие одинаковый смысл, называются одинаково.
Пример:
Заказ (номер, дата, контрагент, организация, сумма, дата доставки, адрес доставки )
Строки заказа (номер документа, товар, количество, цена)
Накладная (номер, дата, контрагент, организация, сумма, адрес )
Строки накладной (номер документа, товар, количество, цена)
Курсивом и подчеркиванием выделено различие.

Ключевые слова для поиска : Object Relational Mapping

Успехов.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Включить список одной сущности в две разные
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]