|
|
|
Прошу совета по структуре таблиц
|
|||
|---|---|---|---|
|
#18+
Посоветуйте оптимальную структуру. Существует задача хранить динамику изменений данных, выводить информацию «на дату». Например храним сотрудника, и динамику его перехода из отдела в отдел. Я Вижу два варианта структуры, но больше склоняюсь ко второй, из за простоты выборки. Но мне не нравится необходимость поддержания целостности данных программным кодом. В первом случае необходимо использовать подзапрос на поиск максимальной даты и потом повторное соединение. Во втором случае ограничивая по двум датам можно найти запись на требуемую дату но, при вставке новой даты необходимо обновлять предыдущую строку. При этом возникают проблемы, когда date_on начинают редактировать. Посоветуйте, может есть болие оптимальные структуры? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2008, 16:53 |
|
||
|
Прошу совета по структуре таблиц
|
|||
|---|---|---|---|
|
#18+
Второй вариант с date_on, date_off определённо предпочтительнее. Ведь данные ты заливаешь один раз, а пользуешься многократно. Что касается корректировок, то имеет смысл отделить историческую БД от оперативной БД. Т.е. в оперативной БД хранить что то типа приказов о переводе сотрудника из отдела в отдел. Ясное дело, приказ имеет только одну дату, которую при необходимости не сложно исправить. А затем автоматической процедурой перегружать данные из оперативной БД в историческую. В процессе перегрузки не сложно вычислить date_off. Только учти, что перегружать нужно не только сами приказы, но и данные о сотрудниках и отделах. Инача при удалении отдела из оперативной БД, твоя историческая БД потеряет сведения. Короче, это обычный DWH. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2008, 20:42 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=107&tid=1544022]: |
0ms |
get settings: |
10ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
18ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 332ms |

| 0 / 0 |
