Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Да же не знаю как к єтому подойти)))
|
|||
|---|---|---|---|
|
#18+
Значит когда сегодня в очередной раз не поделили водителей в банке меня пнули и сказали что бы я написал софтинку с расписанием водил. Ничего сложного там небыло, несколько таблиц из которых два справочника ну и собственно таблица с расписанием. в общем работы было на пол часа. Но потом догбавили задание. т.е. смотрите вот расписание водилы № 1 (естественно только нужные столбцы) : дата |отправка |прибытие | 18.09.2007|8:00 |8:45 | 18.09.2007|9:30 |10:05 | 18.09.2007|11:00 |12:10 | 18.09.2007|13:00 |15:00 | 18.09.2007|18:00 |20:00 | ну вот расписание до момента икс. потом допустим звоню я и говорю что мне нужен водитель №1 с 14:00 до 14:30 она приспокойненько выбирает время и всё нужные данные жмёт Добавить и вот как сделать что бы ей нельзя было добавить запись ведь водитель катается в промежутке времени 18.09.2007|13:00 |15:00 | Т.е. отправка и прибытие новой записи не должно находится в промежутке времени уже существующих записией. кто нибудь с таким сталкивался? просто я не знаю как подойти к этому. заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2007, 19:08 |
|
||
|
Да же не знаю как к єтому подойти)))
|
|||
|---|---|---|---|
|
#18+
Когда же тебя, moderated, забанят? Ты бы хоть читал то, что постишь по всем форумам, Митрофанушка... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2007, 19:31 |
|
||
|
Да же не знаю как к єтому подойти)))
|
|||
|---|---|---|---|
|
#18+
Прочитать здесь внимательно Ещё вопросы по запросу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2007, 20:48 |
|
||
|
Да же не знаю как к єтому подойти)))
|
|||
|---|---|---|---|
|
#18+
обычная проверка на непересекающиеся периоды, в триггере или чеконстрейнте проверяйте (new_date_begin between date_begin and date_end) or (new_date_end between date_begin and date_end). Индекс date_begin, date_end. Отделять дату и время в разные поля -- одно из самых дебильный решений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2007, 08:42 |
|
||
|
Да же не знаю как к єтому подойти)))
|
|||
|---|---|---|---|
|
#18+
Журавлев ДенисОтделять дату и время в разные поля -- одно из самых дебильный решений. Ну не надо так жёстко - бывают варианты... :) Правда в данном случае - тоже лажа (имхо). Прикольно будет когда водила 23:00 уедет и в 01:30 вернётся... ну-да, ну-да варианты типа 18.09.2007|23:00|00:00 19.09.2007|00:00|01:30 А потом проблемы с подсчётом количества выездов, ну и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2007, 11:20 |
|
||
|
Да же не знаю как к єтому подойти)))
|
|||
|---|---|---|---|
|
#18+
АнатоЛой Журавлев ДенисОтделять дату и время в разные поля -- одно из самых дебильный решений. Ну не надо так жёстко - бывают варианты... :) ...Обожаю писать where (date > date_f) or (date=date_f and time >= time_f) или еще круче where year > year_f or year=year_f and month>month_f or year=year_f and month=month_f and day>=day_f .... Вместо одного предиката -- десять, из-за любителей положить год месяц день и время в отдельные поля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2007, 11:39 |
|
||
|
Да же не знаю как к єтому подойти)))
|
|||
|---|---|---|---|
|
#18+
Журавлев Денис АнатоЛой Журавлев ДенисОтделять дату и время в разные поля -- одно из самых дебильный решений. Ну не надо так жёстко - бывают варианты... :) ...Обожаю писать where (date > date_f) or (date=date_f and time >= time_f) или еще круче where year > year_f or year=year_f and month>month_f or year=year_f and month=month_f and day>=day_f .... Вместо одного предиката -- десять, из-за любителей положить год месяц день и время в отдельные поля. Да я понимаю... Я не совсем про это. Я про то, что иногда бывает необходимость выделить время или дату из DATETIME в отдельное поле для создания индекса по нему ("в ущерб" нормальной форме)... Ну неудобно иногда часто использовать Код: plaintext 1. 2. Код: plaintext 1. 2. Почему? Выкладки - ниже: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2007, 12:23 |
|
||
|
Да же не знаю как к єтому подойти)))
|
|||
|---|---|---|---|
|
#18+
АнатоЛой Код: plaintext 1. 2. Функциональный индекс можно попробовать DATE(dtm_test) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2007, 12:50 |
|
||
|
Да же не знаю как к єтому подойти)))
|
|||
|---|---|---|---|
|
#18+
Журавлев Денис Функциональный индекс можно попробовать DATE(dtm_test) Начиная с какой версии IDS?! :( :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2007, 13:08 |
|
||
|
Да же не знаю как к єтому подойти)))
|
|||
|---|---|---|---|
|
#18+
АнатоЛой Журавлев ДенисФункциональный индекс можно попробовать DATE(dtm_test) Начиная с какой версии IDS?! :( :)Любая 9-ка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2007, 13:46 |
|
||
|
Да же не знаю как к єтому подойти)))
|
|||
|---|---|---|---|
|
#18+
Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2007, 14:00 |
|
||
|
Да же не знаю как к єтому подойти)))
|
|||
|---|---|---|---|
|
#18+
АнатоЛой Почему? Выкладки - ниже: 1) informix.tmp_dtm_test: SEQUENTIAL SCAN Filters: DATE (informix.tmp_dtm_test.dtm_test ) = TODAY .... 1) informix.tmp_dtm_test: INDEX PATH (1) Index Keys: dtm_test (Key-Only) (Serial, fragments: ALL) Lower Index Filter: informix.tmp_dtm_test.dtm_test >= datetime(2007-09-20 00:00:00) year to second Upper Index Filter: informix.tmp_dtm_test.dtm_test <= datetime(2007-09-20 23:59:59) year to second Ну и что тут особенного ? Что ты хотел показать ? В первом случае скан , возможно, используется только потому, что таблица маленькая и по индексу читать дороже. Или ты хочешь сказать, что индекс здесь вообще не будет использоваться ни при каких условиях ? Во втором случае используется Key-Only, но вряд ли в реальном запросе тебе кроме времени больше ничего не надо будет тащить из таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2007, 15:09 |
|
||
|
Да же не знаю как к єтому подойти)))
|
|||
|---|---|---|---|
|
#18+
vasilisИли ты хочешь сказать, что индекс здесь вообще не будет использоваться ни при каких условиях ? именно так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2007, 15:32 |
|
||
|
Да же не знаю как к єтому подойти)))
|
|||
|---|---|---|---|
|
#18+
Журавлев Денис vasilisИли ты хочешь сказать, что индекс здесь вообще не будет использоваться ни при каких условиях ? именно так. Это баг или фича ? Если последнее, то где это написано или откуда известно ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2007, 15:39 |
|
||
|
Да же не знаю как к єтому подойти)))
|
|||
|---|---|---|---|
|
#18+
vasilisЭто баг или фича ? Если последнее, то где это написано или откуда известно ?Это аксиома, для любых субд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2007, 15:45 |
|
||
|
Да же не знаю как к єтому подойти)))
|
|||
|---|---|---|---|
|
#18+
DATETIME далеко не у всех есть. Или это не связано с типом ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2007, 17:24 |
|
||
|
Да же не знаю как к єтому подойти)))
|
|||
|---|---|---|---|
|
#18+
vasilisDATETIME далеко не у всех есть. Или это не связано с типом ? не связано. where interger_f - 1 = 0 -- индекс по полю interger_f использоваться не будет where interger_f = 0 + 1 -- индекс по полю interger_f использоваться будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2007, 17:28 |
|
||
|
Да же не знаю как к єтому подойти)))
|
|||
|---|---|---|---|
|
#18+
Журавлев Денис vasilisDATETIME далеко не у всех есть. Или это не связано с типом ? не связано. where interger_f - 1 = 0 -- индекс по полю interger_f использоваться не будет where interger_f = 0 + 1 -- индекс по полю interger_f использоваться будет Это то понятно. Мы просто говорили о разных вещах (по моей вине). Я только сейчас увидел в том примере WHERE DATE (dtm_test) = т.е. использование функции. Конечно же, стандартный индекс тут ни при чем :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2007, 18:07 |
|
||
|
Да же не знаю как к єтому подойти)))
|
|||
|---|---|---|---|
|
#18+
vasilisЭто то понятно. Мы просто говорили о разных вещах (по моей вине). Я только сейчас увидел в том примере WHERE DATE (dtm_test) = т.е. использование функции. Конечно же, стандартный индекс тут ни при чем :)Ну слава богу, дошло. А я подумал что у тебя склероз уже начался :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2007, 08:42 |
|
||
|
Да же не знаю как к єтому подойти)))
|
|||
|---|---|---|---|
|
#18+
Журавлев Денис ..проверяйте (new_date_begin between date_begin and date_end) or (new_date_end between date_begin and date_end).. на мой взгляд забыли еще об одном условии, должно быть так (new_date_begin between date_begin and date_end) or (new_date_end between date_begin and date_end) or (date_begin between new_date_begin and new_date_end) or (date_end between new_date_begin and new_date_end) Если не прав - поправьте ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2007, 12:08 |
|
||
|
Да же не знаю как к єтому подойти)))
|
|||
|---|---|---|---|
|
#18+
Gold_на мой взгляд забыли еще об одном условии, должно быть так (new_date_begin between date_begin and date_end) or (new_date_end between date_begin and date_end) or (date_begin between new_date_begin and new_date_end) or (date_end between new_date_begin and new_date_end) Если не прав - поправьте )Да, забыл. Предлагаю так: (new_date_begin between date_begin and date_end) or (new_date_end between date_begin and date_end) or (new_date_begin < date_begin and new_date_end > date_end) Тут еще правда надо думать о null и о том чтобы new_date_begin>new_date_end Т.е. я всегда предлагаю вместо null 01.01.0001 и 31.12.9999 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2007, 12:29 |
|
||
|
Да же не знаю как к єтому подойти)))
|
|||
|---|---|---|---|
|
#18+
Понял, что скоро и мне надо будет это проверять, решил вернутся :) В этом предположении: Журавлев Денис Тут еще правда надо думать о null и о том чтобы new_date_begin>new_date_end Т.е. я всегда предлагаю вместо null 01.01.0001 и 31.12.9999 Журавлев ДенисДа, забыл. Предлагаю так: (new_date_begin between date_begin and date_end) or (new_date_end between date_begin and date_end) or (new_date_begin < date_begin and new_date_end > date_end) все таки видимо так: ((new_date_begin >= date_begin) and (new_date_begin < date_end)) or ((new_date_end > date_begin) and (new_date_end <=date_end) or ((date_begin >= new_date_begin) and (date_begin < new_date_end)) or ((date_end > new_date_begin) and (date_end <=new_date_end) начал путаться.. поправте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2007, 18:53 |
|
||
|
Да же не знаю как к єтому подойти)))
|
|||
|---|---|---|---|
|
#18+
Gold_начал путаться.. поправтеСделайте контрольный пример, на нем будем проверять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2007, 08:32 |
|
||
|
Да же не знаю как к єтому подойти)))
|
|||
|---|---|---|---|
|
#18+
Журавлев Денис vasilisЭто то понятно. Мы просто говорили о разных вещах (по моей вине). Я только сейчас увидел в том примере WHERE DATE (dtm_test) = т.е. использование функции. Конечно же, стандартный индекс тут ни при чем :)Ну слава богу, дошло. А я подумал что у тебя склероз уже начался :) Склероз все равно начался :), но в данном случае он ни при чем, это была просто невнимательность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2007, 20:11 |
|
||
|
Да же не знаю как к єтому подойти)))
|
|||
|---|---|---|---|
|
#18+
Журавлев ДенисСделайте контрольный пример, на нем будем проверять. Перед созданием примера, хотелось бы уточнить след: Многоверсионных СУБД (например IB) проверять, например на уникальность, мягко говоря, не рекомендуется. В Informix'e, видимо благодаря блокировке можно. Так ли это? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Как написать в чекконстраинте, например условие: (new_date_begin between date_begin and date_end) не знаю. В документации не нашел. Видимо плохо искал (. Подскажите как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 13:32 |
|
||
|
|

start [/forum/search_topic.php?author=Arcad&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
77ms |
get tp. blocked users: |
2ms |
| others: | 676ms |
| total: | 884ms |

| 0 / 0 |
