Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Проблема с отображением в схему БД классов
|
|||
|---|---|---|---|
|
#18+
Есть такая связь между классами: класс родитель и 2 класса потомка (может быть и больше). При наследовании в одном из классов добавляется еще один атрибут Проблема в отображении данной связи на таблицы в БД Я хотел сделать так: Таблица Аctions c атрибутами ID ActionAID ActionBID и 2 соответствующие таблицы с атрибутами для сущностей ActionA и ActionB отдельно в эту таблицу можно добавить запись только с одним из типов Action'a - или ActionA or ActionB но тогда получается, что в каждом кортеже в табл Actions будет значение NULL в одном из атрибутов - получается разряженная таблица Существует ли ли другой подход для решения подобного рода задач? Диаграмма классов приложена ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2005, 00:34 |
|
||
|
Проблема с отображением в схему БД классов
|
|||
|---|---|---|---|
|
#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(....);, а чек уникальности по всей иерархии (и даже ключи) - на отдельном(ых) триггере - вроде бы есть в контрибах. Вероятно будет шустрее, не уверен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2005, 17:13 |
|
||
|
Проблема с отображением в схему БД классов
|
|||
|---|---|---|---|
|
#18+
KPIISЕсть такая связь между классами: класс родитель и 2 класса потомка (может быть и больше). При наследовании в одном из классов добавляется еще один атрибут Проблема в отображении данной связи на таблицы в БД Я хотел сделать так: Таблица Аctions c атрибутами ID ActionAID ActionBID Я не уверен, что правильно понимаю задачу, но я бы сказал, что не Actions должен ссылаться на А и B, а наоборот, т.е. ActionAID и ActionBID должны иметь поле ParentID, ссылающееяся на Action. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2005, 16:55 |
|
||
|
Проблема с отображением в схему БД классов
|
|||
|---|---|---|---|
|
#18+
Это диаграмма классов Как перенести данную диаграмму в понятия RDB - у меня возникли вопросы То есть у вас есть набор классов (1,2....*), которые унаследованы от одного общего класса (абстрактого) - почти у всех одни и те же атрибуты, но у одного из наследников добавляется один атрибут, который рушит всю "красивость" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2005, 17:40 |
|
||
|
Проблема с отображением в схему БД классов
|
|||
|---|---|---|---|
|
#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, 17:52 |
|
||
|
Проблема с отображением в схему БД классов
|
|||
|---|---|---|---|
|
#18+
to XM - огромное спасибо Single Table Inheritance - я думал это неправильно :) (разряженная таблица) to 4321_ >>если пользовацца постгресовским наследованием спасибо - не знал, что есть наследование в постгресе - но вариант отпал - не хочу пользоваться спец фичами определенной БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2005, 18:03 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=33328867&tid=2006933]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 257ms |
| total: | 379ms |

| 0 / 0 |
