powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Правильное хранение интервала времени
22 сообщений из 22, страница 1 из 1
Правильное хранение интервала времени
    #39284311
le7o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Суть проблемы, на сайте есть поля для дней недели, и в них указывается интервал времени (например: 10:00 - 23:59 ... и т. д.), так же можно указать значение полный день и будет хранится статическое значение 24 часа.

Собственно как это можно максимально сжато хранить в таблице БД?


У самого есть идея на стороне php сериалайзить либо сохранять JSON с нужными значениями но хотелось бы это возложить на БД.



P.S.: На данный момент сделал так с помощью JSON: monday = ["10:00", "23:59"], или для полного дня ["24"]
...
Рейтинг: 0 / 0
Правильное хранение интервала времени
    #39284329
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну хранить числа текстом это точно не самый компактный способ. Я просто сам не шарю в мускле, а в доках ничего нету... там типа данных время например?
...
Рейтинг: 0 / 0
Правильное хранение интервала времени
    #39284335
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
le7o,
храни как два поля времени, тип time или timestamp, если будет нужно задавать дату, задавай всем какую то константа, типа 19700101.

json хранить в РСУБД не вариант, тем более в MySQL
...
Рейтинг: 0 / 0
Правильное хранение интервала времени
    #39284373
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
le7o,

А что нужно делать с этими данными на уровне СУБД?
Если только читать/писать, то годится что угодно, в т.ч. и JSON.
Если же по ним нужно будет отбирать записи и этих записей много, то JSON не годится. Тут нужны дополнительные подробности предполагаемой логики.
...
Рейтинг: 0 / 0
Правильное хранение интервала времени
    #39284517
le7o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftle7o,

А что нужно делать с этими данными на уровне СУБД?
Если только читать/писать, то годится что угодно, в т.ч. и JSON.
Если же по ним нужно будет отбирать записи и этих записей много, то JSON не годится. Тут нужны дополнительные подробности предполагаемой логики.

Собственно и хотелось это использовать именно для фильтрации(выборки) данных.

Подробнее о хранении
По итогу структура сейчас следующая:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
NAME, VALUE
monday = ["10:00", "23:59"]
tuesday = ["All"]
wednesday = ["All"]
thursday = ["All"]
friday = ["10:00", "23:59"]
saturday = ["10:00", "23:59"]
sunday = ["10:00", "23:59"]



Сама структура JSON: "10:00" - начало, "23:59" - конец, и All - если весь день.

Код: sql
1.
2.
3.
4.
e7o,
храни как два поля времени, тип time или timestamp, если будет нужно задавать дату, задавай всем какую то константа, типа 19700101.

json хранить в РСУБД не вариант, тем более в MySQL



Если рассматривать вариант от MasterZiv, получается (как я это понял) следующее:

NAME, VALUE
monday_start = 10:00
monday_end = 21:59
tuesday_start = 00:00
tuesday_end = 23:59
wednesday_start = 00:00
wednesday_end = 23:59
thursday_start = 00:00
thursday_end = 23:59
friday_start = 10:00
friday_end = 21:25
saturday_start = 08:00
saturday_end = 21:00
sunday_start = 00:00
sunday_end = 23:59[/SRC]
...
Рейтинг: 0 / 0
Правильное хранение интервала времени
    #39284711
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
le7o,
а если голову включить?
...
Рейтинг: 0 / 0
Правильное хранение интервала времени
    #39284716
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
le7o,
и хранить название дня недели в виде строки - это тоже не есть хорошо.
необходимо и достаточно в int
...
Рейтинг: 0 / 0
Правильное хранение интервала времени
    #39284815
alfakuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тут весь вопрос в том нужно ли будет искать по этому интервалу времени. Если нет то можно и JSON, если нужно то однозначно хранить в 2 полях DATETIME + DATETIME (начало и конец)
...
Рейтинг: 0 / 0
Правильное хранение интервала времени
    #39284931
le7o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадяle7o,
и хранить название дня недели в виде строки - это тоже не есть хорошо.
необходимо и достаточно в int

Я не совсем Вас понял у меня вообще нет названия дня недели, оно в принципе мне и не нужно: monday_star - это название поля.
...
Рейтинг: 0 / 0
Правильное хранение интервала времени
    #39284936
le7o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alfakukТут весь вопрос в том нужно ли будет искать по этому интервалу времени. Если нет то можно и JSON, если нужно то однозначно хранить в 2 полях DATETIME + DATETIME (начало и конец)

Поиск будет, как минимум на соответствие текущему времени посетителя сайта:

Логика следующая: Посетитель заходит на сайт->ему показываются исполнители, которые доступны в данный момент времени (то есть если время в которое Посетитель зашел на сайт входит в интервал заданный в таблице в зависимости от дня недели).
...
Рейтинг: 0 / 0
Правильное хранение интервала времени
    #39284945
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
le7oвадяle7o,
и хранить название дня недели в виде строки - это тоже не есть хорошо.
необходимо и достаточно в int

Я не совсем Вас понял у меня вообще нет названия дня недели, оно в принципе мне и не нужно: monday_star - это название поля.
ну если только так....

авторЛогика следующая: Посетитель заходит на сайт->ему показываются исполнители, которые доступны в данный момент времени (то есть если время в которое Посетитель зашел на сайт входит в интервал заданный в таблице в зависимости от дня недели).
для этого не надо такое
достаточно просто иметь таблицу с операторами и полем да/нет . если оператор активен - true, не активен - false
...
Рейтинг: 0 / 0
Правильное хранение интервала времени
    #39284949
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
le7omiksoftle7o,

А что нужно делать с этими данными на уровне СУБД?
Если только читать/писать, то годится что угодно, в т.ч. и JSON.
Если же по ним нужно будет отбирать записи и этих записей много, то JSON не годится. Тут нужны дополнительные подробности предполагаемой логики.

Собственно и хотелось это использовать именно для фильтрации(выборки) данных.

Подробнее о хранении
По итогу структура сейчас следующая:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
NAME, VALUE
monday = ["10:00", "23:59"]
tuesday = ["All"]
wednesday = ["All"]
thursday = ["All"]
friday = ["10:00", "23:59"]
saturday = ["10:00", "23:59"]
sunday = ["10:00", "23:59"]



Сама структура JSON: "10:00" - начало, "23:59" - конец, и All - если весь день.

Код: sql
1.
2.
3.
4.
e7o,
храни как два поля времени, тип time или timestamp, если будет нужно задавать дату, задавай всем какую то константа, типа 19700101.

json хранить в РСУБД не вариант, тем более в MySQL



Если рассматривать вариант от MasterZiv, получается (как я это понял) следующее:

NAME, VALUE
monday_start = 10:00
monday_end = 21:59
tuesday_start = 00:00
tuesday_end = 23:59
wednesday_start = 00:00
wednesday_end = 23:59
thursday_start = 00:00
thursday_end = 23:59
friday_start = 10:00
friday_end = 21:25
saturday_start = 08:00
saturday_end = 21:00
sunday_start = 00:00
sunday_end = 23:59[/SRC]

Садись, оценка -- 2.

Таблица должна быть примено такой:

day_of_week, start, end

(1, 10:00, 21:59 )
(2, 00:00, 23:59 )
...
...
Рейтинг: 0 / 0
Правильное хранение интервала времени
    #39284958
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv,Садись, оценка -- 2.

Таблица должна быть примено такой:

day_of_week, start, end

(1, 10:00, 21:59 )
(2, 00:00, 23:59 )
я тоже так думал, но в данном случае , возможно , тс прав
...
Рейтинг: 0 / 0
Правильное хранение интервала времени
    #39285072
le7o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv
Садись, оценка -- 2.

Таблица должна быть примено такой:

day_of_week, start, end

(1, 10:00, 21:59 )
(2, 00:00, 23:59 )
...

Извините зачетки уже нет.

А если серьезно:
Хорошо ну будет у меня такая таблица отдельная, а с основной я ее буду связывать, допустим так:

Код: sql
1.
2.
3.
4.
day_of_week, start, end, user_id

(1,  10:00, 21:59, 1 )
(2, 00:00, 23:59, 1 )



И так по 7 записей для каждого пользователя, против 14 полей в основной таблице.
Выборка будет производиться в зависимости от дня недели, при заходе пользователя. И при явном поиске.

Т.е. если необходимо получить всех кто доступен в Понедельник с 10:00 до 18:00, будет запрос с join по всем записям таблицы где:
day_of_week = 1 + проверка на вхождение в данный временной интервал,

против запроса выбрать всех операторов где заданный интервал >= monday_start и заданный интервал <= monday_end


Какое из решений будет производительнее?
...
Рейтинг: 0 / 0
Правильное хранение интервала времени
    #39285148
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
le7o,
тут надо исходить из опыта работы с базами
таблица должна быть такая
id id_usera пон_старт пон_конец .....
...
Рейтинг: 0 / 0
Правильное хранение интервала времени
    #39287617
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяle7o,
тут надо исходить из опыта работы с базами
таблица должна быть такая
id id_usera пон_старт пон_конец .....


не, только не такой, это нарушение 1НФ...
...
Рейтинг: 0 / 0
Правильное хранение интервала времени
    #39287623
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
le7o,

вам не нужно будет стряпать динамический запрос исходя из Дня недели, достаточно будет одного запроса. А скорость может будет отличаться а может нет.
...
Рейтинг: 0 / 0
Правильное хранение интервала времени
    #39287704
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivвадяle7o,
тут надо исходить из опыта работы с базами
таблица должна быть такая
id id_usera пон_старт пон_конец .....


не, только не такой, это нарушение 1НФ...
почему ты так думаешь?
в чём нарушение?
...
Рейтинг: 0 / 0
Правильное хранение интервала времени
    #39288001
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяMasterZivпропущено...



не, только не такой, это нарушение 1НФ...
почему ты так думаешь?
в чём нарушение?


я не думаю, я знаю, это разные вещи.
в чем нарушение - наличие массива данных в строке. нарушение 1НФ, неатомарный атрибут.
почитай, что такое 1нф.
...
Рейтинг: 0 / 0
Правильное хранение интервала времени
    #39288054
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторв чем нарушение - наличие массива данных в строке. нарушение 1НФ, неатомарный атрибут.
почитай, что такое 1нф.
возможно, но это буде намного проще для работы
чем твой вариант
...
Рейтинг: 0 / 0
Правильное хранение интервала времени
    #39288055
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор наличие массива данных в строке
ну это как интерпретировать данные.
...
Рейтинг: 0 / 0
Правильное хранение интервала времени
    #39288184
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
le7oкак это можно максимально сжато хранить в таблице БД?
А не могли бы Вы обосновать жизненную необходимость выделенного условия? Потому как на текущий момент всё выглядит как попытка наиметь себе дополнительного геморроя ради совершенно невменяемого профита...
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Правильное хранение интервала времени
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]