Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
проектирование теория
|
|||
|---|---|---|---|
|
#18+
Товарищи теоретики подскажите: при денормализации ограничения ссылочности перетаскиваются тоже или нет ? Например: Таблица A ( Id PK), Таблица B ( Id PK) Таблица C ( Id PK, A_Id FK, B_Id FK AK) - расскрывает много ко много Таблиц А,B. Таблица D ( Id PK, C_Id FK) в таблице D необходимо присутствие полей A_Id, B_Id. Если сделать в С составной PK то вопрос решается но этот вариант не подходит. Поэтому в Таблицу D добавляю поля A_Id, B_Id: D ( Id PK, C_Id FK, A_Id, B_Id), но делать ли их FK ??? Как по теории прально посоветуйте плиззз. Пасиб. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2005, 12:27 |
|
||
|
проектирование теория
|
|||
|---|---|---|---|
|
#18+
Общие соображения. Если это вычисляемые поля, то прежде всего нужно подумать, а стоит ли их хранить. Уверены, что стоит - тогда нет смысла обкладывать дополнительными ограничениями целостности в режиме RESTRICT. За них должны отвечать процедры вычисления. Правда, FK можно использовать для реализации каскадного изменения дочек например ON DELETE SET NULL, что может частично упростить процедуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2005, 13:36 |
|
||
|
проектирование теория
|
|||
|---|---|---|---|
|
#18+
ModelR авторЕсли это вычисляемые поля... это как ? Ок давайте на конкретном примере: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 1. alter table Клиенты add Firm_Service_Id int alter table Клиенты add constraint FK_Клиенты_REFERENCE_Услуги_Фирмы foreign key (Firm_Service_Id) references Услуги_Фирм (Id) alter table Клиенты add Firm_Id int alter table Клиенты add Service_Id int 2. то же что и 1 только добавив FK constraint на Firm_Id и на Service_Id 3. то же что и 2 забрав constraint FK_Клиенты_REFERENCE_Услуги_Фирмы следя за целосностью програмно 4. Ваш вариант ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2005, 15:11 |
|
||
|
проектирование теория
|
|||
|---|---|---|---|
|
#18+
... Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2005, 15:13 |
|
||
|
проектирование теория
|
|||
|---|---|---|---|
|
#18+
1. Бизнес-правила. -Услуги_Фирм очевидно не не должны содержать дублирующихся записей. UNIQUE (Firm_Id int, Service_Id) - Клиент может воспользоваться только одной Услуги_Фирм (довольно странно, но пусть так). - Если клиент воспользовался некоторой Услуги_Фирм то мы хотим хранить и ссылку на первичный ключ и значения атрибутов Услуги_Фирм в Клиенты. Первый вопрос: в чем смысл хранения атрибутов ? Ведь мы их всегда можем вычислить запросом. Возможные ответы: Да они вычисляемые, а денормализация предпринята для сокращения времени запросов. Тогда см. ответ выше. Нет, это значения на тот момент, когда был создан Клиент, и при изменении данных в Услуги_Фирм соответсвующие атрибуты в Клиенты не меняются (они не вычисляемые). Тогда надо думать в сторону исторических (темпоральных) данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2005, 10:59 |
|
||
|
проектирование теория
|
|||
|---|---|---|---|
|
#18+
ModelR1. Бизнес-правила. -Услуги_Фирм очевидно не не должны содержать дублирующихся записей. UNIQUE (Firm_Id int, Service_Id) я описал это в скрипте выше. ModelR- Клиент может воспользоваться только одной Услуги_Фирм (довольно странно, но пусть так). упростил ModelRВедь мы их всегда можем вычислить запросом. Возможные ответы: Да они вычисляемые, а денормализация предпринята для сокращения времени запросов. Тогда см. ответ выше. наконец то я понял что Вы подразумеваете под термином вычисляемые :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2005, 11:10 |
|
||
|
проектирование теория
|
|||
|---|---|---|---|
|
#18+
Есть еще такой трюк: Код: plaintext 1. 2. Поэтому все же подумайте, а для чего денормализаия? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2005, 11:10 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33305562&tid=1545632]: |
0ms |
get settings: |
12ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
76ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 261ms |
| total: | 452ms |

| 0 / 0 |
