Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
16.10.2005, 00:34
|
|||
|---|---|---|---|
Проблема с отображением в схему БД классов |
|||
|
#18+
Есть такая связь между классами: класс родитель и 2 класса потомка (может быть и больше). При наследовании в одном из классов добавляется еще один атрибут Проблема в отображении данной связи на таблицы в БД Я хотел сделать так: Таблица Аctions c атрибутами ID ActionAID ActionBID и 2 соответствующие таблицы с атрибутами для сущностей ActionA и ActionB отдельно в эту таблицу можно добавить запись только с одним из типов Action'a - или ActionA or ActionB но тогда получается, что в каждом кортеже в табл Actions будет значение NULL в одном из атрибутов - получается разряженная таблица Существует ли ли другой подход для решения подобного рода задач? Диаграмма классов приложена ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.10.2005, 17:13
|
|||
|---|---|---|---|
|
|||
Проблема с отображением в схему БД классов |
|||
|
#18+
если пользовацца постгресовским наследованием, то таблица -родитель (Аctions) может быть "виртуальной" - без записей. А распознать, какие именно записи вернул запрос SELECT * FROM Аctions; можно модифицируя SELECT *,tableoid FROM Аctions; где tableoid - служебное слово (поле - указатель на oid в pg_class) Например: CREATE TABLE Аctions ( aid int8 DEFAULT nextval(....)) WITHOUT OID; CREATE TABLE АctionsA ( ....) INHERITS (Аctions) WITHOUT OID; CREATE TABLE АctionsB ( ....) INHERIT Аctions WITHOUT OID; .... причем уникальность aid по всем наследованным таблицам можно обеспечить триггером BEFORE UPDATE / BEFORE INSERT примерно так: Код: plaintext но можно сделать и просто DEFAULT nextval(....);, а чек уникальности по всей иерархии (и даже ключи) - на отдельном(ых) триггере - вроде бы есть в контрибах. Вероятно будет шустрее, не уверен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.10.2005, 16:55
|
|||
|---|---|---|---|
Проблема с отображением в схему БД классов |
|||
|
#18+
KPIISЕсть такая связь между классами: класс родитель и 2 класса потомка (может быть и больше). При наследовании в одном из классов добавляется еще один атрибут Проблема в отображении данной связи на таблицы в БД Я хотел сделать так: Таблица Аctions c атрибутами ID ActionAID ActionBID Я не уверен, что правильно понимаю задачу, но я бы сказал, что не Actions должен ссылаться на А и B, а наоборот, т.е. ActionAID и ActionBID должны иметь поле ParentID, ссылающееяся на Action. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.10.2005, 17:40
|
|||
|---|---|---|---|
Проблема с отображением в схему БД классов |
|||
|
#18+
Это диаграмма классов Как перенести данную диаграмму в понятия RDB - у меня возникли вопросы То есть у вас есть набор классов (1,2....*), которые унаследованы от одного общего класса (абстрактого) - почти у всех одни и те же атрибуты, но у одного из наследников добавляется один атрибут, который рушит всю "красивость" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.10.2005, 17:52
|
|||
|---|---|---|---|
Проблема с отображением в схему БД классов |
|||
|
#18+
Стандартные шаблоны ORM: http://martinfowler.com/eaaCatalog/ http://martinfowler.com/eaaCatalog/concreteTableInheritance.html http://martinfowler.com/eaaCatalog/classTableInheritance.html http://martinfowler.com/eaaCatalog/singleTableInheritance.html Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.10.2005, 18:03
|
|||
|---|---|---|---|
Проблема с отображением в схему БД классов |
|||
|
#18+
to XM - огромное спасибо Single Table Inheritance - я думал это неправильно :) (разряженная таблица) to 4321_ >>если пользовацца постгресовским наследованием спасибо - не знал, что есть наследование в постгресе - но вариант отпал - не хочу пользоваться спец фичами определенной БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=53&mobile=1&tid=2006933]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 390ms |

| 0 / 0 |
