powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Многие-ко-многим. Как упростить?
11 сообщений из 11, страница 1 из 1
Многие-ко-многим. Как упростить?
    #37261984
Darooma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица Events (события). Каждое событие имеет дату-время проведения. Их может быть несколько, например

1)5 марта-23 апреля с 9.30 до 18.00
2)3 мая с 9.00 до 14.00, 5 мая с 11.00 до 18.00, 9 мая с 9.00 до 14.00, 10 мая с 19.00 до 23.00, 14 мая с 12.00 до 22.00

То есть даты могут идти не по-порядку, их может быть как одна, так и несколько. Время тоже может различаться. Разные события тоже могут иметь одинаковое дату-время работы.

Я думаю, что нужно сделать таблицу WorkingDateTimes (EventID, DateTimeFrom, DateTimeTo) с отнощением многие-ко-многим. Она, конечно, подойдет.

Но как быть с первым случаем: разве придется перечислять все даты в интервале 5 марта-23 апреля? Как быть упростить?
...
Рейтинг: 0 / 0
Многие-ко-многим. Как упростить?
    #37262105
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaroomaНо как быть с первым случаем: разве придется перечислять все даты в интервале 5 марта-23 апреля? Как быть упростить?Вы подумайте, как эти данные будут использоваться.

Скорее всего, "WorkingDateTimes (EventID, DateTimeFrom, DateTimeTo)" и будет самым простым в использовании вариантом.
...
Рейтинг: 0 / 0
Многие-ко-многим. Как упростить?
    #37262282
Darooma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvgDaroomaНо как быть с первым случаем: разве придется перечислять все даты в интервале 5 марта-23 апреля? Как быть упростить?Вы подумайте, как эти данные будут использоваться.

Скорее всего, "WorkingDateTimes (EventID, DateTimeFrom, DateTimeTo)" и будет самым простым в использовании вариантом.
Они будут отображаться и по ним будет осуществляться поиск, например, найти события, которые происходят в определенный промежуток.
...
Рейтинг: 0 / 0
Многие-ко-многим. Как упростить?
    #37262395
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaroomaalexeyvgВы подумайте, как эти данные будут использоваться.

Скорее всего, "WorkingDateTimes (EventID, DateTimeFrom, DateTimeTo)" и будет самым простым в использовании вариантом.
Они будут отображаться и по ним будет осуществляться поиск, например, найти события, которые происходят в определенный промежуток.Какой промежуток? например:
с 3 мая 12.00 до 9 мая 13.00, попадающие в "окна", описанные в данных
или
с 3 мая до 9 мая с 12.00 до 13.00, попадающие в "окна", описанные в данных

Вот в зависимости от этого и выбирайте схему данных.

Нужно довольно детальнрое описание, "которые происходят в определенный промежуток" всё таки слишком лаконично...
...
Рейтинг: 0 / 0
Многие-ко-многим. Как упростить?
    #37262541
Darooma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvgDaroomaпропущено...

Они будут отображаться и по ним будет осуществляться поиск, например, найти события, которые происходят в определенный промежуток.Какой промежуток? например:
с 3 мая 12.00 до 9 мая 13.00, попадающие в "окна", описанные в данных
или
с 3 мая до 9 мая с 12.00 до 13.00, попадающие в "окна", описанные в данных

Вот в зависимости от этого и выбирайте схему данных.

Нужно довольно детальнрое описание, "которые происходят в определенный промежуток" всё таки слишком лаконично...

с 3 мая по 9 мая.
...
Рейтинг: 0 / 0
Многие-ко-многим. Как упростить?
    #37263018
Darooma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какую схему выбрать в таком случае?
...
Рейтинг: 0 / 0
Многие-ко-многим. Как упростить?
    #37263343
Vladimir Kiselev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Darooma,

Можно, например, хранить дату-время начала каждого события, продолжительность (в часах, минутах или секундах, как удобнее) и дату завершения. Такая структура закрывает даже достаточно сложные варианты, когда событие, например, начинается в понедельник в 21.00, а завершается во вторник в 16.00.
Другой вариант, дата-время начала, дата-время конца и дата завершения.
Если даты завершения нет - повторяется каждый день.
Можно еще такой вариант: дата начала, дата завершения, время начала и время завершения. Но тогда перехлест с одного дня на другой чуть сложнее сделать.
...
Рейтинг: 0 / 0
Многие-ко-многим. Как упростить?
    #37263707
Darooma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vladimir Kiselev,
интересно, надо подумать, спасибо.
...
Рейтинг: 0 / 0
Многие-ко-многим. Как упростить?
    #37263724
Darooma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vladimir KiselevDarooma,

1. Можно, например, хранить дату-время начала каждого события, продолжительность (в часах, минутах или секундах, как удобнее) и дату завершения. Такая структура закрывает даже достаточно сложные варианты, когда событие, например, начинается в понедельник в 21.00, а завершается во вторник в 16.00.
2. Другой вариант, дата-время начала, дата-время конца и дата завершения.
Если даты завершения нет - повторяется каждый день.

1. Вы имеете ввиду -----9 мая 12.00 ---- 14 часов ---- 10 мая 2 часа------- ?

Для чего здесь продолжительность или дата окончания? Что-то лишнее. Потому, что событие

а) может повторяться не каждый день
б) иметь различные графики в каждый из дней


2. То же самое:
а) может повторяться не каждый день
б) иметь различные графики в каждый из дней
...
Рейтинг: 0 / 0
Многие-ко-многим. Как упростить?
    #37266043
Darooma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
up
...
Рейтинг: 0 / 0
Многие-ко-многим. Как упростить?
    #37268652
Darooma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
up
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Многие-ко-многим. Как упростить?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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