ок, а как вы предлагаете хранить данные такого типа: каждая строка должна содержать массив часов. В одном случае нужна строка со всем массивом, в другом построчно, по часам
artloveyou, тогда есть вариант поинтереснее с битовой маской
если расставить часы как
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
и записывать их наличие как 0 или 1 то получается скажем для комбинации 02:00 и 03:00
00000000000000000001100 = 3
а если надо 18 и 23
10000100000000000000000 = 4325376
тоесть надо записывать всего одно число-маску вместо длинного массива
также легко делать выборки, если надо выбрать записи которые подходят под 18 часов
маска 18 часов = 00000100000000000000000 = 131072
select * from tbl where time & 131072 > 0
Евгений, угу, и тогда вместо нормализации мы получим даже не читабельную строку, а просто набор символов, не поддающийся ни логичному ранжированию, ни фильтрации разумными средствами. Нааайс...
Евгений, Смысл нормализации не в экономии 192 байт, и даже не в переходе от лонгтекст поля к тайм, что уже очень хорошо, а в логичной и контролируемой архитектуре приложения, с прозрачной логикой чтения/сравнения/изменения, соответствующей 3 нормальной форме.