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

Есть поля
---------------------------------------------------------------
id | Название | Время работы
---------------------------------------------------------------
1 | Имя 1___| с 10 до 18, пн- пт
---------------------------------------------------------------
2 | Имя 2___| с 10 до 18, пн- чт, пт с 10 до 17, сб-вс вых
---------------------------------------------------------------
3 | Имя 3___| круглосуточно
---------------------------------------------------------------

как хранить время работы соблюдая атомарность? Время работы может быть разное то есть может каждый день с 10 до 18, а может для каждого для разное время работы.

Можно конечно строкой хранить, но это для меня не подходит т.к. потом будет очень сложно выбрать компании которые
работают например с 10 до 18 в субботу

спасибо!
...
Рейтинг: 0 / 0
Как сделать соблюдая атомарность
    #37526563
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в лоб (что годится если задача учебная)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
create table my_table
(
id int,
names varchar( 100 ),
day_of_week int check (day_of_week between  1  and  7 ), 
time_from datetime,
time_to datetime
)
...
Рейтинг: 0 / 0
Как сделать соблюдая атомарность
    #37526613
SERG1257в лоб (что годится если задача учебная)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
create table my_table
(
id int,
names varchar( 100 ),
day_of_week int check (day_of_week between  1  and  7 ), 
time_from datetime,
time_to datetime
)


Только для времени нельзя использовать datetime, поскольку дата там отсутствует. Если СУБД поддерживает чистый тип TIME, надо его сипользовать. Если нет, то лучше всего хранить целочисленные значения минут от начала дня, плюс соответствующие констрейнты (на допустимые количества минут и на то, что minute_from меньше чем minute_to). Перевести время в минуты и минуты во время -- задача тривиальная, в отличие от задачи "отрезания" даты из типа datetime.
...
Рейтинг: 0 / 0
Как сделать соблюдая атомарность
    #37526701
Polzovatel1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257в лоб (что годится если задача учебная)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
create table my_table
(
id int,
names varchar( 100 ),
day_of_week int check (day_of_week between  1  and  7 ), 
time_from datetime,
time_to datetime
)



Этот вариант не подойдет т.к. при такой таблице я не смогу внести, что компания работает с 10 до 18 пн - пт, с 10 до 15 сб, вс -выходной.

какие еще решение?
У думал сделать так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE  TABLE kompany(
  idkompany INT NOT NULL AUTO_INCREMENT ,
  name VARCHAR( 45 ) NULL ,
  mode INT NULL )

CREATE  TABLE IF NOT EXISTS modes (
  idmodes INT NOT NULL ,
  time_from INT NULL ,
  time_to INT NULL ,
  day_of_week INT NULL )


И в таблицу modes для каждого дня писать время и день недели.

На сколько это будет правильно? Ведь таблица modes тогда будет в 7 раз больше чем таблица kompany. а записей будет много.
...
Рейтинг: 0 / 0
Как сделать соблюдая атомарность
    #37526724
Polzovatel1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и чаще всего это записывать можно стандартно типа с 10 до 18 пн- сб.
а соответственно я столкнусь с тем что в 80% случаев я буду писать по шесть лишних записей.
...
Рейтинг: 0 / 0
Как сделать соблюдая атомарность
    #37526748
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Polzovatel1

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE  TABLE kompany(
  idkompany INT NOT NULL AUTO_INCREMENT ,
  name VARCHAR( 45 ) NULL ,
  mode INT NULL )

CREATE  TABLE IF NOT EXISTS modes (
  idmodes INT NOT NULL ,
  idkompany INT NOT  ,
  day_from INT NULL )
  day_to INT NULL )
  time_from INT NULL ,
  time_to INT NULL 
)
...
Рейтинг: 0 / 0
Как сделать соблюдая атомарность
    #37527306
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как насчет "последняя пятница месяца - санитарный день" ? Бывает?
...
Рейтинг: 0 / 0
Как сделать соблюдая атомарность
    #37527347
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Polzovatel1а соответственно я столкнусь с тем что в 80% случаев я буду писать по шесть лишних записей.

Ты уж выбери: необходимо тебе компактное хранение или простота и скорость выборок...
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Как сделать соблюдая атомарность
    #37527443
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cane Cat FisherКак насчет "последняя пятница месяца - санитарный день" ? Бывает?
Добавить признак - работает, не работает
...
Рейтинг: 0 / 0
Как сделать соблюдая атомарность
    #37527494
Polzovatel1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cane Cat FisherКак насчет "последняя пятница месяца - санитарный день" ? Бывает?
нет просто режим работы компании.


Dimitry SibiryakovPolzovatel1а соответственно я столкнусь с тем что в 80% случаев я буду писать по шесть лишних записей.

Ты уж выбери: необходимо тебе компактное хранение или простота и скорость выборок...


мне нежно хранении информации о компании с режимом работы. И реализовать это оптимально, как только возможно. опыта у меня нет поэтому и спрашиваю оптимальное решение данной проблемы.
...
Рейтинг: 0 / 0
Как сделать соблюдая атомарность
    #37527501
WereWolf777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ТС, вот здесь обсуждался один из вариантов хранения расписаний http://www.sql.ru/forum/actualthread.aspx?tid=859159
...
Рейтинг: 0 / 0
Как сделать соблюдая атомарность
    #37527530
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Polzovatel1мне нежно хранении информации о компании с режимом работы. И реализовать это оптимально,
как только возможно.

Ответьте (для себя) на вопрос "оптимально для чего?" Потому что "оптимальность" не
абсолютная величина. Она всегда прикладывается к конкретному использованию.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Как сделать соблюдая атомарность
    #37527672
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 11/15/2011 01:57 AM, Polzovatel1 wrote:

> Можно конечно строкой хранить, но это для меня не подходит т.к. потом будет
> очень сложно выбрать компании которые
> работают например с 10 до 18 в субботу

Два поля, начало работы и конец работы,
и это (видимо) в отдельной таблице, ключ таблицы -- ссылка на фирму
и ссылка или код дня недели.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как сделать соблюдая атомарность
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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