
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
14.06.2008, 17:49
|
|||
|---|---|---|---|
|
|||
Включить список одной сущности в две разные |
|||
|
#18+
Имеется две сущности - Сущность "первая" состоит из следующих полей - дата - склад - валюта - продавец (организации) детализация - товар - кол-во - цена - сумма Сущность "вторая" состоит из следующих полей - дата - склад - покупатель (организация) детализация - товар - кол-во - цена - сумма Как видите детализация ни чем не отличается. Причем первая и вторая сущности включает в себя любое количество детализаций. Вот как бы это спроектировать??? Есть мысли завести табличку "Тип сущности" - первый тип - второй тип И ввести в первую и вторую сущность ее тип. И в сущность детализации ввести 2 внешних ключа : id (той сущности что содержит список детализаций) и тип сущности(первая\вторая). Как Вам такой подход? Или может есть лучше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.06.2008, 05:16
|
|||
|---|---|---|---|
|
|||
Включить список одной сущности в две разные |
|||
|
#18+
Есть лучше, проще и стандартнее. Заведи одну общую таблицу для обеих сущностей - в неё одно поле для ИД, другое для типа (1, 2), туда же все атрибуты общие для обеих и все атрибуты уникальные для каждой. Добавь CHECK, что либо тип 1 и все атрибуты специфичные для второй тогда NULL или наоборот тип = 2 и все атрибуты специфичные для первой тогда NULL (в общем этот CHECK делать не так обязательно, но потом может избавить от многих проблем). Потом заводишь одну таблицу для детализации (у ней все аттрибуты одни и те же для обеих сущностей, как я понял) и делаешь один единственный FOREIGN KEY на первую таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.06.2008, 15:42
|
|||
|---|---|---|---|
Включить список одной сущности в две разные |
|||
|
#18+
Общепринято строить хранилища документов по принципу: 1 тип документа в 1 структуру БД, состоящую из 2-х частей (таблиц) - заголовок документа и строки (табличная часть) документа. Если у документа физически несколько табличных частей, то делается столько же таблиц строк документа. Другое дело, что для унификации выборки и записи БД все таблицы заголовков и строк документов делаются максимально похожими - поля таблиц, несущие одинаковый смысл, называются одинаково. Пример: Заказ (номер, дата, контрагент, организация, сумма, дата доставки, адрес доставки ) Строки заказа (номер документа, товар, количество, цена) Накладная (номер, дата, контрагент, организация, сумма, адрес ) Строки накладной (номер документа, товар, количество, цена) Курсивом и подчеркиванием выделено различие. Ключевые слова для поиска : Object Relational Mapping Успехов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=32&mobile=1&tid=1543800]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
147ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
22ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 411ms |

| 0 / 0 |
