|
|
|
Версионность (хранение истории) многие-ко-многим
|
|||
|---|---|---|---|
|
#18+
Подскажите как организовать версионность отношения многие-ко-многим Ситуация такая: таблица документов отражающая Документ "Табличная часть" документа - таблица со ссылкой на документ (поле idOwner) Связь многие ко многим между Документом и LinkTable. Документ изменяется операциями. После выполнения операции новый документ записывается в таблицу истории с указанием операции, времени выполнения, и новыми значениями полей документа. Теперь операция может изменять не только поля документа, но и Табличную часть и связь многие-ко-многим. И их тоже нужно хранить в истории. Хочется получать состояние документа на определенный момент (выполнение части операций над ним) Есть варианты: 1. Для каждой версии делать "Снимок" Табличной части и Таблицы связи м-к-м, с указанием версии (например id из DocumentHistory) + легко строить запросы - при росте количества операций - сильно растет занимаемое место 2. Создать таблицу истории Табличной части и таблицы связи м-к-м, в которой хранится диапазон актуальности значений. Вот тут и возникла сложность. Если указывать промежуток с помощью uniqueidentifier - то получится слишком сложно строить запросы как бы их так легко указать? Код: 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. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. Модератор: Тема перенесена из форума "Microsoft SQL Server". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2009, 16:58 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35874766&tid=1543374]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
168ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 252ms |
| total: | 508ms |

| 0 / 0 |
