|
|
|
Как реализовать запрос? Стоит ли менять структуру базы?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Очень надеюсь на вашу помощь! В настоящее время проектирую базу данных метеоролигеских измерений. Сейчас в базе содержится 16 таблиц, соответствующих 8 различным метео-показателям. Табл. 1 - макс температура в течение дня, табл 2. - мин температура в течение дня, табл. 3 - макс давление в течение дня, табл 4. - мин давление в течение дня и так далее. В каждой таблице записаны данные для всех метеостанций на все дни года (местами данные неплолные, т.е. с какой-то станции в какой-то день замера нет). То есть получается ID станции в каждой таблице далеко не уникален. Станций чуть более 5000. Пример таблицы (дневной максимум температуры): ID станции | месяц-день | значение показателя 1001 01-01 -17 1001 01-02 -19 1001 01-03 -18 ... ... ... 1001 12-31 -15 1002 01-01 23 1002 01-02 25 ... ... ... Теперь о том, что хотелось бы с этими данными делать. Задаются, например, пределы температуры (от -5 до 10) и пределы давления (от 750 до 770), а также временной промежуток (с 01-30 по 02-15). Хотелось бы выбрать ID станций, которые на протяжении всего указанного временного промежутка удовлетворяют заданным условиям. (Если данных на какой-то день нет, логично считать, что станция условиям не удовлетворяет). Скажите, пожалуйста, возможно ли вообще реализовать такой запрос? Если нет, как изменить структуру базы, чтобы это стало возможным? Заранее благодарен за помощь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2015, 02:16:25 |
|
||
|
Как реализовать запрос? Стоит ли менять структуру базы?
|
|||
|---|---|---|---|
|
#18+
bndrnkЗдравствуйте! Очень надеюсь на вашу помощь! В настоящее время проектирую базу данных метеоролигеских измерений. Сейчас в базе содержится 16 таблиц, соответствующих 8 различным метео-показателям. Табл. 1 - макс температура в течение дня, табл 2. - мин температура в течение дня, табл. 3 - макс давление в течение дня, табл 4. - мин давление в течение дня и так далее. В каждой таблице записаны данные для всех метеостанций на все дни года (местами данные неплолные, т.е. с какой-то станции в какой-то день замера нет). То есть получается ID станции в каждой таблице далеко не уникален. Станций чуть более 5000. Пример таблицы (дневной максимум температуры): ID станции | месяц-день | значение показателя 1001 01-01 -17 1001 01-02 -19 1001 01-03 -18 ... ... ... 1001 12-31 -15 1002 01-01 23 1002 01-02 25 ... ... ... Теперь о том, что хотелось бы с этими данными делать. Задаются, например, пределы температуры (от -5 до 10) и пределы давления (от 750 до 770), а также временной промежуток (с 01-30 по 02-15). Хотелось бы выбрать ID станций, которые на протяжении всего указанного временного промежутка удовлетворяют заданным условиям. (Если данных на какой-то день нет, логично считать, что станция условиям не удовлетворяет). Скажите, пожалуйста, возможно ли вообще реализовать такой запрос? Если нет, как изменить структуру базы, чтобы это стало возможным? Заранее благодарен за помощь! 1. запрос возможен при сушествуюшей структуре логически, такой запрос можно решить несколькими способами, например: из списка все станций вычесть станции которые НЕ удовлетворяют условиям: (предпологается наличие НУЛЛ записи при отсутствии показаний. Если запись просто отсутствует, надо еше иметь таблицу дат. Или менять приведеную "негативную" логику на более сложную "позитивную") Код: 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. 2. существует как минимум еше два способа хранения подобной информации: 2.1. прочитайте про EAV 2.2 самое лучшее при наличии стабильного недлинного списка показаний -- единая таблица: id, record_date, station_id, max_temperature, min_temperature, average_pressure, ......measurement11, measurement12 запрос будет быстрее и удобнее. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. вариации на тему с хорошими шансами работы по индексам: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2015, 05:44:34 |
|
||
|
Как реализовать запрос? Стоит ли менять структуру базы?
|
|||
|---|---|---|---|
|
#18+
javajdbc, спасибо большое за содержательный ответ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2015, 17:26:44 |
|
||
|
Как реализовать запрос? Стоит ли менять структуру базы?
|
|||
|---|---|---|---|
|
#18+
javajdbc2.2 самое лучшее при наличии стабильного недлинного списка показаний -- единая таблица: id, record_date, station_id, max_temperature, min_temperature, average_pressure, ......measurement11, measurement12 запрос будет быстрее и удобнее. Несомненно это самый удобный способ. + самый компактный. Только с Null не запутаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2015, 05:28:30 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=137&tid=1833213]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 190ms |
| total: | 317ms |

| 0 / 0 |
