powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Помогите пожалуйста с проектированием БД...
25 сообщений из 27, страница 1 из 2
Помогите пожалуйста с проектированием БД...
    #37942177
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитал похожие темы, но все таки не нашел ответа.
Задача:
Есть сущность маршрута(номер маршрута, название маршрута, режим следования).
Режим следование в свою очередь делится:
- (1) ежедневно
- (2) по датам(нужно выбрать одну или несколько дат)
- (3) по дням недели (нужно выбрать один или несколько дней недели)
- (4) по типу дней (нужно выбрать только один тип - есть набор типов дней)
- (5) по чет.\нечетн.

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

Как можно организовать модель хранения таких разрозненных данных в одной структуре данных?

Пытался прикрутить EAV и что то не сходится...

Буду благодарен любой наводке.

Спасибо
...
Рейтинг: 0 / 0
Помогите пожалуйста с проектированием БД...
    #37942208
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чти
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помогите пожалуйста с проектированием БД...
    #37942339
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kasikКак можно организовать модель хранения таких разрозненных данных в одной структуре данных?
По умолчанию (1)
(4)=(5)
К сущности Маршрут прикрепить Список дат или Список дней недели
Так можно вычислить все прошлые и будущие даты этого маршрута
...
Рейтинг: 0 / 0
Помогите пожалуйста с проектированием БД...
    #37942419
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Похождение вокруг да около на двух страницах, но ничего толком, к сожалению...

Как вариант можно разработать не вертикально, а в горизонтально, те в самой сужности "Маршруты" вставить столько столбцов сколько различных аттрибутов имеются(их пять), как обычные строки, который будут представлять из себя последовательность через запятую значений данного атрибута. И всю логику заполнения, добавления и редактирование перевести на клиента, через парсинг- кодинг данной строчки и разворачивание\сворачивание ее во временную таблицу(только на клиентсвком приложении в бд ее не будет).

Мне кажется, что под данную задачу это оптимальное решение(хотя не правильное с точки зрение реляционной теории), и подходит под все случаи, а если нужно добавить аттрибут, то происходит добавление столбца, и прописка его в клиенте(логику).
...
Рейтинг: 0 / 0
Помогите пожалуйста с проектированием БД...
    #37942571
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasikничего толком, к сожалению...
А ты ожидал готовую структуру? Ню-ню...

kasikпятый вариант одно и тоже, что и 3-й.
А вот и нет. Варианты с первого по пятый это то же что и четвёртый. Просто список типов
достаточно расширить значениями "каждый день", "пасха", "первое апреля", "понедельник",
"чётный" и т.д.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помогите пожалуйста с проектированием БД...
    #37942841
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Готовую конечно не ожидал. Но и зацепиться особо, кроме EAV, не за что.
...
Рейтинг: 0 / 0
Помогите пожалуйста с проектированием БД...
    #37942990
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasik,

хранить для маршрута цикл-список флагов по дням недели пн, вт, ср, чт, пт, сб, вс
например цикл для маршрута по четным дням = 0,1,0,1,0,1,0
дополнительно хранятся даты-исключения из цикла
результирующий график = цикл - исключения
по циклу вычисляются даты и из этих дат убирают исключения из цикла.

маршрут ссылается на цикл.
исключения могут быть привязаны либо к циклу, либо к маршруту, либо заданы для обоих (это поле для размышления).

никакой EAV тут не нужен никоим боком.
...
Рейтинг: 0 / 0
Помогите пожалуйста с проектированием БД...
    #37942999
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasik, определитесь, вам нужно:
1. просто предложение по модели без ограничений с вашей стороны, но соответствующей постановке задачи
2. предложение с требованием "в одной структуре данных". Это в одной таблице? а почему?
А не утсроит ли вас XML - "даже в одном поле"
3. Чем конкретно для вас плох EAV?

Entities Classes
class_id class_name1 Маршрут2 Режим следования3 Дни недели4 Типы дней5 Чётные/нечётные числа


Entities Classes Attributes
class_id attribute_id attribute_name attribute_datatype1 1 Наименование маршрута string1 2 Номер маршрута string1 3 Режим следования ссылка_на_значение_в_EAV1 4 Параметр режима одно_из_значений_множества2 5 Наименование режима следования string

Instances
instance_id class_id name1 1 Маршрут 2К2 2 Режимы следования3 3 Дни недели
EAV
value_id instance_id attribute_id attribute_value1 2 1 ежедневно2 2 2 по датам(нужно выбрать одну или несколько дат)3 2 3 по дням недели (нужно выбрать один или несколько дней недели)4 2 4 по типу дней (нужно выбрать только один тип - есть набор типов дней)5 2 5 по чет.\нечетн.6 1 1 Новополевая - Большевик7 1 2 2K8 1 3 3 (по дням недели)9 1 4 ссылка_на_понедельник10 1 4 ссылка_на_вторник...
...
Рейтинг: 0 / 0
Помогите пожалуйста с проектированием БД...
    #37943006
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛой,

АнатоЛой3. Чем конкретно для вас плох EAV?
(c) "Зачем нам кузнец?"
...
Рейтинг: 0 / 0
Помогите пожалуйста с проектированием БД...
    #37943167
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Материализуйте свой режим следования через таблицу "календарь" (на 10 лет вперед это будет только 3560 записей) учтя таким образом и праздники и переносы и все что угодно.
...
Рейтинг: 0 / 0
Помогите пожалуйста с проектированием БД...
    #37943988
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasikПочитал похожие темы, но все таки не нашел ответа.
Задача:
Есть сущность маршрута(номер маршрута, название маршрута, режим следования).
Режим следование в свою очередь делится:
- (1) ежедневно
- (2) по датам(нужно выбрать одну или несколько дат)
- (3) по дням недели (нужно выбрать один или несколько дней недели)
- (4) по типу дней (нужно выбрать только один тип - есть набор типов дней)
- (5) по чет.\нечетн.


Помниться когда делал прикладушку занятости аудиторий, там тоже были такие же списки.
В базе все свел к пункту 2.

Грубо говоря маршрут не может существовать вечно, он существует определенный период (например 10 лет :-)
Так вот, в течении этого времени режим следования может меняться.
Поэтому для меня было проще было бы оставить только "по датам", а все остальное вынести в приложение.
Т.е. в базе хранить только даты когда маршрут следует.
Если режим следования изменится или добавиться новый тип.
Вам не надо будет менять БД.
Да история режима следования маршрутов сохраниться. ;-)
...
Рейтинг: 0 / 0
Помогите пожалуйста с проектированием БД...
    #37944019
Бредятна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mad_nazgulkasikПочитал похожие темы, но все таки не нашел ответа.
Задача:
Есть сущность маршрута(номер маршрута, название маршрута, режим следования).
Режим следование в свою очередь делится:
- (1) ежедневно
- (2) по датам(нужно выбрать одну или несколько дат)
- (3) по дням недели (нужно выбрать один или несколько дней недели)
- (4) по типу дней (нужно выбрать только один тип - есть набор типов дней)
- (5) по чет.\нечетн.


Помниться когда делал прикладушку занятости аудиторий, там тоже были такие же списки.
В базе все свел к пункту 2.

Грубо говоря маршрут не может существовать вечно, он существует определенный период (например 10 лет :-)
Так вот, в течении этого времени режим следования может меняться.
Поэтому для меня было проще было бы оставить только "по датам", а все остальное вынести в приложение.
Т.е. в базе хранить только даты когда маршрут следует.
Если режим следования изменится или добавиться новый тип.
Вам не надо будет менять БД.
Да история режима следования маршрутов сохраниться. ;-)
Грамотно.
...
Рейтинг: 0 / 0
Помогите пожалуйста с проектированием БД...
    #37944022
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только "все остальное" лучше в БД, чем в приложении:)
...
Рейтинг: 0 / 0
Помогите пожалуйста с проектированием БД...
    #37944399
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаТолько "все остальное" лучше в БД, чем в приложении:)
Оно конечно так, но всего не предусмотришь.

На предыдущей работе была задача сбора данных.
Причем были разные периоды.
Ну например: до 5-го числа месяца следующего за отчетным (квартальные данные)
Это еще ничего.
А вот до 1-го понедельника месяца следующего за отчетным (полугодовые данные)... гораздо веселее.

В базе это вылилось в приращение дней, месяцев, лет.
И все равно надо ручками подправлять.

Так что самый простой способ - это сразу сформировать конкретные даты режима следования и если что потом их ручками править.
Ну например, если был форс-мажор.
Буран или гроза.
...
Рейтинг: 0 / 0
Помогите пожалуйста с проектированием БД...
    #37944619
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulОно конечно так, но всего не предусмотришь.
Вы же свели часть данных к п. (2) (к датам). Остальные данные и логика тоже обычно к чему-то сводятся, и хранятся в БД:)
mad_nazgulНа предыдущей работе была задача сбора данных.
Причем были разные периоды.
Ну например: до 5-го числа месяца следующего за отчетным (квартальные данные)
Это еще ничего.
А вот до 1-го понедельника месяца следующего за отчетным (полугодовые данные)... гораздо веселее.

У Росстата море этого веселья:)
mad_nazgul... Так что самый простой способ - это сразу сформировать конкретные даты режима следования и если что потом их ручками править.
Ну например, если был форс-мажор.
Буран или гроза.
Да
...
Рейтинг: 0 / 0
Помогите пожалуйста с проектированием БД...
    #37944730
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulТак что самый простой способ - это сразу сформировать конкретные даты режима следования и если что потом их ручками править.Это не то что самый простой, а и самый правильный: расписание марщрута и конкретная поездка конкретного поезда (машины и т.п.) - совершенно разные бизнес-сущности.
...
Рейтинг: 0 / 0
Помогите пожалуйста с проектированием БД...
    #37945023
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятинаmad_nazgulОно конечно так, но всего не предусмотришь.
Вы же свели часть данных к п. (2) (к датам). Остальные данные и логика тоже обычно к чему-то сводятся, и хранятся в БД:)


Я не свел, они сами свелись. ;-)
А логика "цикличности" упирается в то, что "циклы" во все не циклы, да и периоды меняются каждый месяц.

БредятинаУ Росстата море этого веселья:)


Ну почти, только в другом государстве.
Причем периодичность сдачи могла меняться каждый месяц, но "навсегда". :-)

Бредятинаmad_nazgul... Так что самый простой способ - это сразу сформировать конкретные даты режима следования и если что потом их ручками править.
Ну например, если был форс-мажор.
Буран или гроза.
Да

Ага.
...
Рейтинг: 0 / 0
Помогите пожалуйста с проектированием БД...
    #37945034
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgmad_nazgulТак что самый простой способ - это сразу сформировать конкретные даты режима следования и если что потом их ручками править.Это не то что самый простой, а и самый правильный: расписание марщрута и конкретная поездка конкретного поезда (машины и т.п.) - совершенно разные бизнес-сущности.

Ну скорее они соотносятся как план/факт.
Так что, по моему, проще планировать конкретную поездку (пусть она и будет совпадать с некоторым "циклом").
Чем мучиться с "циклами".
...
Рейтинг: 0 / 0
Помогите пожалуйста с проектированием БД...
    #37945509
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пок речь о конкретной поездке речи не идет, такое не предусмотрено в ТЗ, нужно только организорвать хранение маршрута
...
Рейтинг: 0 / 0
Помогите пожалуйста с проектированием БД...
    #37945845
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasikпок речь о конкретной поездке речи не идет, такое не предусмотрено в ТЗ, нужно только организорвать хранение маршрута

Оно логикой задачи "подразумевается".
Проще иметь дело с конкретным единичным маршрутом, чем с абстракцией "цикла".
По своему опыту, любая задача связанная с расписанием при попытке хранить не конкретные даты, а "циклы", приводит к большому "геморрою".
Так что храните единичный маршрут с конкретной датой.
А то, что такие же маршруты совпадают с другими маршрутами, так это ничего страшного.
Повторю: Для любого "цикла" все равно рано или поздно нужно будет предусматривать исключения.
А исключений может быть очень много, причем их предусмотреть нельзя.
Лучше их сразу исключить. :-)
...
Рейтинг: 0 / 0
Помогите пожалуйста с проектированием БД...
    #37945907
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulОно логикой задачи "подразумевается".
Проще иметь дело с конкретным единичным маршрутом, чем с абстракцией "цикла".
По своему опыту, любая задача связанная с расписанием при попытке хранить не конкретные даты, а "циклы", приводит к большому "геморрою".
Так что храните единичный маршрут с конкретной датой.Нужно всё таки отталкиваться от бизнес-процесса. Например, для подразделения, отвеающего за печать и распространение по станциям и кассам ЖД-расписаний, знать конкретные маршруты не нужно.

Если речь о автоматизации именно управления марщрутами, то понятно, сущность единичного маршрута обязательно нужна, но и расписание нужно, это же самостоятельная бизнес-сущность, это нужно для планирования, да и просто классификации маршрута, управления маршрутом.
mad_nazgulТак что, по моему, проще планировать конкретную поездку (пусть она и будет совпадать с некоторым "циклом").
Чем мучиться с "циклами".Это как календарь - нужна таблица-календарь с записями на каждый день, но это не исключает необходимости задания календарных правил, хотя бы чтоб генерить записи календаря.
...
Рейтинг: 0 / 0
Помогите пожалуйста с проектированием БД...
    #37945934
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgНужно всё таки отталкиваться от бизнес-процесса. Например, для подразделения, отвеающего за печать и распространение по станциям и кассам ЖД-расписаний, знать конкретные маршруты не нужно.

Если речь о автоматизации именно управления марщрутами, то понятно, сущность единичного маршрута обязательно нужна, но и расписание нужно, это же самостоятельная бизнес-сущность, это нужно для планирования, да и просто классификации маршрута, управления маршрутом.


Так я и про то же.
Просто единичный маршрут (план), планируется на конкретную дату.
А то что такие маршруты повторяются каждую неделю (в течении n-го времени) это уже логика, которую запихать в БД трудно.

alexeyvgmad_nazgulТак что, по моему, проще планировать конкретную поездку (пусть она и будет совпадать с некоторым "циклом").
Чем мучиться с "циклами".Это как календарь - нужна таблица-календарь с записями на каждый день, но это не исключает необходимости задания календарных правил, хотя бы чтоб генерить записи календаря.

Согласен.
Но это обычно заканчивается тем, что все равно данную логику выносят в приложение.
Поэтому зачем ее (логику) пихать в БД, если все равно придется реализовывать в приложении?
...
Рейтинг: 0 / 0
Помогите пожалуйста с проектированием БД...
    #37946068
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulА то что такие маршруты повторяются каждую неделю (в течении n-го времени) это уже логика, которую запихать в БД трудно.
Поэтому зачем ее (логику) пихать в БД, если все равно придется реализовывать в приложении?Ну это уже вопрос реализации, чисто технический.

ИМХО это не такая сложная логика, которую нельзя реализовать на уровне СУБД.
Что тут сложного, подумаеншь, расписание какое то, это же не алгоритмы шифрования или сжатия видео...
...
Рейтинг: 0 / 0
Помогите пожалуйста с проектированием БД...
    #37946105
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgЭто как календарь - нужна таблица-календарь с записями на каждый день, но это не исключает необходимости задания календарных правил, хотя бы чтоб генерить записи календаря.
Правильно. Надо разделить понятия алгоритмов (задание "циклов", правил, исключений) и хранение результатов формирования маршрута. Хранить или не хранить (строить динамически) результат - выбор ваш в зависимости от сложности исключений.
А вот хранить циклы (правила) и исключения необходимо в любом случае, иначе велика вероятность "человеческого фактора" при наполнении данных и их проверке на корректность.
...
Рейтинг: 0 / 0
Помогите пожалуйста с проектированием БД...
    #37947362
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulЯ не свел, они сами свелись. ;-)
А логика "цикличности" упирается в то, что "циклы" во все не циклы, да и периоды меняются каждый месяц.

Тем не менее, все должно быть в БД, а приложение желательно вообще не писать:)
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Помогите пожалуйста с проектированием БД...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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