
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
17.10.2006, 09:06
|
|||
|---|---|---|---|
|
|||
Обеспечение целостности в нескольких таблицах |
|||
|
#18+
Вот такая структура. DataType(ID, Name, BaseUnitID) Unit(ID, Value, BaseUnitID) BaseUnit(BaseUnitID) DataType, Unit связаны внешними ключами с BaseUnit. Между собой относятся как многие-ко-многим. Мы можем построить вьюху (DataTypeID, UnitID), которая определяет допустимые сочетания типов данных и единиц измерения. Очень бы хотелось построить внешний ключ на табличке Main(..., DataTypeID, UnitID), ссылающийся на такую вьюху, но нельзя. Или как-то все-таки можно? (SQL Server 2005). Или есть другой способ обеспечить подобную целостность без триггеров? ------------------------------------------------------- Отладка есть процесс избавления программы от лажи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.10.2006, 13:13
|
|||
|---|---|---|---|
Обеспечение целостности в нескольких таблицах |
|||
|
#18+
Можно за счет избыточности в Main. Main(..., DataTypeID, UnitID, BaseUnitID) ФК1 (DataTypeID, BaseUnitID) ссылается на DataType ФК2 (UnitID, BaseUnitID) ссылается на Unit ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.10.2006, 13:15
|
|||
|---|---|---|---|
Обеспечение целостности в нескольких таблицах |
|||
|
#18+
RealMaksimusОчень бы хотелось построить внешний ключ на табличке Main(..., DataTypeID, UnitID), ссылающийся на такую вьюху, но нельзя. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.10.2006, 14:45
|
|||
|---|---|---|---|
|
|||
Обеспечение целостности в нескольких таблицах |
|||
|
#18+
Так-то да... Мысли определенно сходятся :) Спасибо. Но я уж лучше тригерров, поддерживающих целостность понавешу, чем избыточность вводить буду. Тем более, что это я про одну табличку MainData написал. На самом деле сладкая парочка DataTypeID, UnitID по всей базе расползлась. И во всех таблицах добавлять избыточное поле. (Почему не сделать тогда суррогатный ключ на пару DataTypeID, UnitID? Потому что это лишний join в паре самых узких мест). ------------------------------------------------------ Отладка есть процесс избавления программы от лажи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=32&tablet=1&tid=1544978]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
151ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 422ms |

| 0 / 0 |
