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

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

И ввести в первую и вторую сущность ее тип.
И в сущность детализации ввести 2 внешних ключа : id (той сущности что содержит список детализаций) и тип сущности(первая\вторая).
Как Вам такой подход? Или может есть лучше?
...
Рейтинг: 0 / 0
15.06.2008, 05:16
    #35373343
Чорный Бада
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Включить список одной сущности в две разные
Есть лучше, проще и стандартнее. Заведи одну общую таблицу для обеих сущностей - в неё одно поле для ИД, другое для типа (1, 2), туда же все атрибуты общие для обеих и все атрибуты уникальные для каждой. Добавь CHECK, что либо тип 1 и все атрибуты специфичные для второй тогда NULL или наоборот тип = 2 и все атрибуты специфичные для первой тогда NULL (в общем этот CHECK делать не так обязательно, но потом может избавить от многих проблем). Потом заводишь одну таблицу для детализации (у ней все аттрибуты одни и те же для обеих сущностей, как я понял) и делаешь один единственный FOREIGN KEY на первую таблицу.
...
Рейтинг: 0 / 0
24.06.2008, 15:42
    #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]