Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
12.02.2018, 12:18
|
|||
|---|---|---|---|
Правильная структура таблицы |
|||
|
#18+
Здравствуйте! Есть план на каждый год по месяцам. См. excel-ий файл. План состоит из иерархических статей. Конечные статьи, которая не имеет под статьи, можно корректировать. Не конечные статьи, которые имеют под статьи, пересчитываются автоматически. Есть две таблицы. Таблица как справочник с занесенными все статьями, где для каждой статьи указан Parent. А также Таблица как документ, где по годам фиксируются статьи и соответствующие значения по месяцам. Но нужно учесть следующую логику . Например, в 2017 году в справочнике была сформирована иерархия статей. 1. В 2018 году одна статья удалилась, но в 2017 году не должна удаляться. 2. В 2018 году появилась статья, но в 2017 не должна присутствовать. 3. В 2018 году статья перенаименовалась, но в 2017 году должна остаться как предыдущее наименование. 4. В 2018 году статья изменила своего родителя (то есть была перемещена), в 2017 году не должна перемещаться. 5. Есть статья с кодом строки 7 (см excel файл), В нее входят Статья 1.2.1 и Статья 1.2.2 , но не входят Статья 1.2.3 и Статья 1.2.4 . 6. Структура статей для всех городов и указанного года абсолютно одинаковая. 7. Определенная статья 2018 года соответствует статье 2017 года. То есть Статья 1.1.1 за 2018 год соответствует Статья 1.1.1 за 2017 год. Для 1-4 пунктов изменение в 2018 г. может быть как и в начале года, как и в середине года, так и в конце года. Исходя из описанной логики нужно прописать структуру так, чтобы при изменении конечной статьи, пересчитывались родительские. Имеется SQL-запрос с исходными данными. Код: sql 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. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. Возникают следующие вопросы: 1. Скажите, для данной задачи нужно отделять эти две таблицы или лучше в одну? Следует учесть, что если толкать в одну таблицу и если создавать новые строки для 2019 года, то важно чтобы для удобства справочные строки можно скопировать за 2018 г и скорректировать структуру статей для 2019 года. Возможно будет нужно создавать отдельную процедуру. 2. Для автоматического перерасчета родительских строк нужно использовать триггеры или функцию? Учитывая что нужно делать перебор строк. Если изменена родительская строка и это строка имеет своего родителя, то и родитель тоже корректируется. 3. По пятому пункту из описания логики как прописать родитетелей? То есть если к таким элементам как Статья 1.2.1 , Статья 1.2.2 , Статья 1.2.3 и Статья 1.2.4. указать родителя как Статья 1.2 , то статьям Статья 1.2.1 , Статья 1.2.2 как указать родителя Статья 1.2 ( Статья 1.2.1 + Статья 1.2.2) . 4. Для данной задачи что нужно учесть еще в плане структуры? Нужно ли в справочной таблице поле Присутствие подстатьи или достаточно поля Родитель ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.02.2018, 12:45
|
|||
|---|---|---|---|
Правильная структура таблицы |
|||
|
#18+
- я бы делал две таблицы (дерево и его значения) - если дерево локализовано в рамках одного года и все расчёты внутри одного года, то есть смысл подумать над разделением этих таблиц по годам (секционирование\физическое разделение) - вам нужна версионность структуры дерева привязанная к году - попробуйте реализацию дерева через hierarchyID - чем реализовать перерасчёты и изменения структуры зависит от вашей системы (частота изменений, способ обработки ошибок... и тп.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&mobile=1&tid=1690296]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
82ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 413ms |

| 0 / 0 |
