|
|
|
Обеспечение целостности в нескольких таблицах
|
|||
|---|---|---|---|
|
#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, 09:06 |
|
||
|
Обеспечение целостности в нескольких таблицах
|
|||
|---|---|---|---|
|
#18+
Можно за счет избыточности в Main. Main(..., DataTypeID, UnitID, BaseUnitID) ФК1 (DataTypeID, BaseUnitID) ссылается на DataType ФК2 (UnitID, BaseUnitID) ссылается на Unit ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2006, 13:13 |
|
||
|
Обеспечение целостности в нескольких таблицах
|
|||
|---|---|---|---|
|
#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, 13:15 |
|
||
|
Обеспечение целостности в нескольких таблицах
|
|||
|---|---|---|---|
|
#18+
Так-то да... Мысли определенно сходятся :) Спасибо. Но я уж лучше тригерров, поддерживающих целостность понавешу, чем избыточность вводить буду. Тем более, что это я про одну табличку MainData написал. На самом деле сладкая парочка DataTypeID, UnitID по всей базе расползлась. И во всех таблицах добавлять избыточное поле. (Почему не сделать тогда суррогатный ключ на пару DataTypeID, UnitID? Потому что это лишний join в паре самых узких мест). ------------------------------------------------------ Отладка есть процесс избавления программы от лажи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2006, 14:45 |
|
||
|
|

start [/forum/search_topic.php?author=Caplan&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
176ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 479ms |
| total: | 766ms |

| 0 / 0 |
