|
|
|
Помогите пожалуйста с проектированием БД...
|
|||
|---|---|---|---|
|
#18+
Почитал похожие темы, но все таки не нашел ответа. Задача: Есть сущность маршрута(номер маршрута, название маршрута, режим следования). Режим следование в свою очередь делится: - (1) ежедневно - (2) по датам(нужно выбрать одну или несколько дат) - (3) по дням недели (нужно выбрать один или несколько дней недели) - (4) по типу дней (нужно выбрать только один тип - есть набор типов дней) - (5) по чет.\нечетн. То есть получается в первом варианте не будет никаких выборов значений, во-втором - просто составить список дат, в-третьих - выбор одной или несколько позиций из ограниченного и конечного количества набора, в-четвертых - выбрать тип дня из набора типов, который может меняться, и пятый вариант одно и тоже, что и 3-й. Как можно организовать модель хранения таких разрозненных данных в одной структуре данных? Пытался прикрутить EAV и что то не сходится... Буду благодарен любой наводке. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2012, 00:24 |
|
||
|
Помогите пожалуйста с проектированием БД...
|
|||
|---|---|---|---|
|
#18+
чти Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2012, 01:17 |
|
||
|
Помогите пожалуйста с проектированием БД...
|
|||
|---|---|---|---|
|
#18+
kasikКак можно организовать модель хранения таких разрозненных данных в одной структуре данных? По умолчанию (1) (4)=(5) К сущности Маршрут прикрепить Список дат или Список дней недели Так можно вычислить все прошлые и будущие даты этого маршрута ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2012, 09:53 |
|
||
|
Помогите пожалуйста с проектированием БД...
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Похождение вокруг да около на двух страницах, но ничего толком, к сожалению... Как вариант можно разработать не вертикально, а в горизонтально, те в самой сужности "Маршруты" вставить столько столбцов сколько различных аттрибутов имеются(их пять), как обычные строки, который будут представлять из себя последовательность через запятую значений данного атрибута. И всю логику заполнения, добавления и редактирование перевести на клиента, через парсинг- кодинг данной строчки и разворачивание\сворачивание ее во временную таблицу(только на клиентсвком приложении в бд ее не будет). Мне кажется, что под данную задачу это оптимальное решение(хотя не правильное с точки зрение реляционной теории), и подходит под все случаи, а если нужно добавить аттрибут, то происходит добавление столбца, и прописка его в клиенте(логику). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2012, 10:44 |
|
||
|
Помогите пожалуйста с проектированием БД...
|
|||
|---|---|---|---|
|
#18+
kasikничего толком, к сожалению... А ты ожидал готовую структуру? Ню-ню... kasikпятый вариант одно и тоже, что и 3-й. А вот и нет. Варианты с первого по пятый это то же что и четвёртый. Просто список типов достаточно расширить значениями "каждый день", "пасха", "первое апреля", "понедельник", "чётный" и т.д. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2012, 12:00 |
|
||
|
Помогите пожалуйста с проектированием БД...
|
|||
|---|---|---|---|
|
#18+
Готовую конечно не ожидал. Но и зацепиться особо, кроме EAV, не за что. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2012, 14:09 |
|
||
|
Помогите пожалуйста с проектированием БД...
|
|||
|---|---|---|---|
|
#18+
kasik, хранить для маршрута цикл-список флагов по дням недели пн, вт, ср, чт, пт, сб, вс например цикл для маршрута по четным дням = 0,1,0,1,0,1,0 дополнительно хранятся даты-исключения из цикла результирующий график = цикл - исключения по циклу вычисляются даты и из этих дат убирают исключения из цикла. маршрут ссылается на цикл. исключения могут быть привязаны либо к циклу, либо к маршруту, либо заданы для обоих (это поле для размышления). никакой EAV тут не нужен никоим боком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2012, 15:28 |
|
||
|
Помогите пожалуйста с проектированием БД...
|
|||
|---|---|---|---|
|
#18+
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 ссылка_на_вторник... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2012, 15:33 |
|
||
|
Помогите пожалуйста с проектированием БД...
|
|||
|---|---|---|---|
|
#18+
АнатоЛой, АнатоЛой3. Чем конкретно для вас плох EAV? (c) "Зачем нам кузнец?" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2012, 15:41 |
|
||
|
Помогите пожалуйста с проектированием БД...
|
|||
|---|---|---|---|
|
#18+
Материализуйте свой режим следования через таблицу "календарь" (на 10 лет вперед это будет только 3560 записей) учтя таким образом и праздники и переносы и все что угодно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2012, 16:58 |
|
||
|
Помогите пожалуйста с проектированием БД...
|
|||
|---|---|---|---|
|
#18+
kasikПочитал похожие темы, но все таки не нашел ответа. Задача: Есть сущность маршрута(номер маршрута, название маршрута, режим следования). Режим следование в свою очередь делится: - (1) ежедневно - (2) по датам(нужно выбрать одну или несколько дат) - (3) по дням недели (нужно выбрать один или несколько дней недели) - (4) по типу дней (нужно выбрать только один тип - есть набор типов дней) - (5) по чет.\нечетн. Помниться когда делал прикладушку занятости аудиторий, там тоже были такие же списки. В базе все свел к пункту 2. Грубо говоря маршрут не может существовать вечно, он существует определенный период (например 10 лет :-) Так вот, в течении этого времени режим следования может меняться. Поэтому для меня было проще было бы оставить только "по датам", а все остальное вынести в приложение. Т.е. в базе хранить только даты когда маршрут следует. Если режим следования изменится или добавиться новый тип. Вам не надо будет менять БД. Да история режима следования маршрутов сохраниться. ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2012, 10:22 |
|
||
|
Помогите пожалуйста с проектированием БД...
|
|||
|---|---|---|---|
|
#18+
mad_nazgulkasikПочитал похожие темы, но все таки не нашел ответа. Задача: Есть сущность маршрута(номер маршрута, название маршрута, режим следования). Режим следование в свою очередь делится: - (1) ежедневно - (2) по датам(нужно выбрать одну или несколько дат) - (3) по дням недели (нужно выбрать один или несколько дней недели) - (4) по типу дней (нужно выбрать только один тип - есть набор типов дней) - (5) по чет.\нечетн. Помниться когда делал прикладушку занятости аудиторий, там тоже были такие же списки. В базе все свел к пункту 2. Грубо говоря маршрут не может существовать вечно, он существует определенный период (например 10 лет :-) Так вот, в течении этого времени режим следования может меняться. Поэтому для меня было проще было бы оставить только "по датам", а все остальное вынести в приложение. Т.е. в базе хранить только даты когда маршрут следует. Если режим следования изменится или добавиться новый тип. Вам не надо будет менять БД. Да история режима следования маршрутов сохраниться. ;-) Грамотно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2012, 10:36 |
|
||
|
Помогите пожалуйста с проектированием БД...
|
|||
|---|---|---|---|
|
#18+
Только "все остальное" лучше в БД, чем в приложении:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2012, 10:38 |
|
||
|
Помогите пожалуйста с проектированием БД...
|
|||
|---|---|---|---|
|
#18+
БредятинаТолько "все остальное" лучше в БД, чем в приложении:) Оно конечно так, но всего не предусмотришь. На предыдущей работе была задача сбора данных. Причем были разные периоды. Ну например: до 5-го числа месяца следующего за отчетным (квартальные данные) Это еще ничего. А вот до 1-го понедельника месяца следующего за отчетным (полугодовые данные)... гораздо веселее. В базе это вылилось в приращение дней, месяцев, лет. И все равно надо ручками подправлять. Так что самый простой способ - это сразу сформировать конкретные даты режима следования и если что потом их ручками править. Ну например, если был форс-мажор. Буран или гроза. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2012, 12:37 |
|
||
|
Помогите пожалуйста с проектированием БД...
|
|||
|---|---|---|---|
|
#18+
mad_nazgulОно конечно так, но всего не предусмотришь. Вы же свели часть данных к п. (2) (к датам). Остальные данные и логика тоже обычно к чему-то сводятся, и хранятся в БД:) mad_nazgulНа предыдущей работе была задача сбора данных. Причем были разные периоды. Ну например: до 5-го числа месяца следующего за отчетным (квартальные данные) Это еще ничего. А вот до 1-го понедельника месяца следующего за отчетным (полугодовые данные)... гораздо веселее. У Росстата море этого веселья:) mad_nazgul... Так что самый простой способ - это сразу сформировать конкретные даты режима следования и если что потом их ручками править. Ну например, если был форс-мажор. Буран или гроза. Да ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2012, 13:44 |
|
||
|
Помогите пожалуйста с проектированием БД...
|
|||
|---|---|---|---|
|
#18+
mad_nazgulТак что самый простой способ - это сразу сформировать конкретные даты режима следования и если что потом их ручками править.Это не то что самый простой, а и самый правильный: расписание марщрута и конкретная поездка конкретного поезда (машины и т.п.) - совершенно разные бизнес-сущности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2012, 14:23 |
|
||
|
Помогите пожалуйста с проектированием БД...
|
|||
|---|---|---|---|
|
#18+
Бредятинаmad_nazgulОно конечно так, но всего не предусмотришь. Вы же свели часть данных к п. (2) (к датам). Остальные данные и логика тоже обычно к чему-то сводятся, и хранятся в БД:) Я не свел, они сами свелись. ;-) А логика "цикличности" упирается в то, что "циклы" во все не циклы, да и периоды меняются каждый месяц. БредятинаУ Росстата море этого веселья:) Ну почти, только в другом государстве. Причем периодичность сдачи могла меняться каждый месяц, но "навсегда". :-) Бредятинаmad_nazgul... Так что самый простой способ - это сразу сформировать конкретные даты режима следования и если что потом их ручками править. Ну например, если был форс-мажор. Буран или гроза. Да Ага. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2012, 16:12 |
|
||
|
Помогите пожалуйста с проектированием БД...
|
|||
|---|---|---|---|
|
#18+
alexeyvgmad_nazgulТак что самый простой способ - это сразу сформировать конкретные даты режима следования и если что потом их ручками править.Это не то что самый простой, а и самый правильный: расписание марщрута и конкретная поездка конкретного поезда (машины и т.п.) - совершенно разные бизнес-сущности. Ну скорее они соотносятся как план/факт. Так что, по моему, проще планировать конкретную поездку (пусть она и будет совпадать с некоторым "циклом"). Чем мучиться с "циклами". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2012, 16:15 |
|
||
|
Помогите пожалуйста с проектированием БД...
|
|||
|---|---|---|---|
|
#18+
пок речь о конкретной поездке речи не идет, такое не предусмотрено в ТЗ, нужно только организорвать хранение маршрута ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2012, 20:07 |
|
||
|
Помогите пожалуйста с проектированием БД...
|
|||
|---|---|---|---|
|
#18+
kasikпок речь о конкретной поездке речи не идет, такое не предусмотрено в ТЗ, нужно только организорвать хранение маршрута Оно логикой задачи "подразумевается". Проще иметь дело с конкретным единичным маршрутом, чем с абстракцией "цикла". По своему опыту, любая задача связанная с расписанием при попытке хранить не конкретные даты, а "циклы", приводит к большому "геморрою". Так что храните единичный маршрут с конкретной датой. А то, что такие же маршруты совпадают с другими маршрутами, так это ничего страшного. Повторю: Для любого "цикла" все равно рано или поздно нужно будет предусматривать исключения. А исключений может быть очень много, причем их предусмотреть нельзя. Лучше их сразу исключить. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2012, 07:32 |
|
||
|
Помогите пожалуйста с проектированием БД...
|
|||
|---|---|---|---|
|
#18+
mad_nazgulОно логикой задачи "подразумевается". Проще иметь дело с конкретным единичным маршрутом, чем с абстракцией "цикла". По своему опыту, любая задача связанная с расписанием при попытке хранить не конкретные даты, а "циклы", приводит к большому "геморрою". Так что храните единичный маршрут с конкретной датой.Нужно всё таки отталкиваться от бизнес-процесса. Например, для подразделения, отвеающего за печать и распространение по станциям и кассам ЖД-расписаний, знать конкретные маршруты не нужно. Если речь о автоматизации именно управления марщрутами, то понятно, сущность единичного маршрута обязательно нужна, но и расписание нужно, это же самостоятельная бизнес-сущность, это нужно для планирования, да и просто классификации маршрута, управления маршрутом. mad_nazgulТак что, по моему, проще планировать конкретную поездку (пусть она и будет совпадать с некоторым "циклом"). Чем мучиться с "циклами".Это как календарь - нужна таблица-календарь с записями на каждый день, но это не исключает необходимости задания календарных правил, хотя бы чтоб генерить записи календаря. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2012, 09:08 |
|
||
|
Помогите пожалуйста с проектированием БД...
|
|||
|---|---|---|---|
|
#18+
alexeyvgНужно всё таки отталкиваться от бизнес-процесса. Например, для подразделения, отвеающего за печать и распространение по станциям и кассам ЖД-расписаний, знать конкретные маршруты не нужно. Если речь о автоматизации именно управления марщрутами, то понятно, сущность единичного маршрута обязательно нужна, но и расписание нужно, это же самостоятельная бизнес-сущность, это нужно для планирования, да и просто классификации маршрута, управления маршрутом. Так я и про то же. Просто единичный маршрут (план), планируется на конкретную дату. А то что такие маршруты повторяются каждую неделю (в течении n-го времени) это уже логика, которую запихать в БД трудно. alexeyvgmad_nazgulТак что, по моему, проще планировать конкретную поездку (пусть она и будет совпадать с некоторым "циклом"). Чем мучиться с "циклами".Это как календарь - нужна таблица-календарь с записями на каждый день, но это не исключает необходимости задания календарных правил, хотя бы чтоб генерить записи календаря. Согласен. Но это обычно заканчивается тем, что все равно данную логику выносят в приложение. Поэтому зачем ее (логику) пихать в БД, если все равно придется реализовывать в приложении? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2012, 09:27 |
|
||
|
Помогите пожалуйста с проектированием БД...
|
|||
|---|---|---|---|
|
#18+
mad_nazgulА то что такие маршруты повторяются каждую неделю (в течении n-го времени) это уже логика, которую запихать в БД трудно. Поэтому зачем ее (логику) пихать в БД, если все равно придется реализовывать в приложении?Ну это уже вопрос реализации, чисто технический. ИМХО это не такая сложная логика, которую нельзя реализовать на уровне СУБД. Что тут сложного, подумаеншь, расписание какое то, это же не алгоритмы шифрования или сжатия видео... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2012, 10:42 |
|
||
|
Помогите пожалуйста с проектированием БД...
|
|||
|---|---|---|---|
|
#18+
alexeyvgЭто как календарь - нужна таблица-календарь с записями на каждый день, но это не исключает необходимости задания календарных правил, хотя бы чтоб генерить записи календаря. Правильно. Надо разделить понятия алгоритмов (задание "циклов", правил, исключений) и хранение результатов формирования маршрута. Хранить или не хранить (строить динамически) результат - выбор ваш в зависимости от сложности исключений. А вот хранить циклы (правила) и исключения необходимо в любом случае, иначе велика вероятность "человеческого фактора" при наполнении данных и их проверке на корректность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2012, 11:00 |
|
||
|
Помогите пожалуйста с проектированием БД...
|
|||
|---|---|---|---|
|
#18+
mad_nazgulЯ не свел, они сами свелись. ;-) А логика "цикличности" упирается в то, что "циклы" во все не циклы, да и периоды меняются каждый месяц. Тем не менее, все должно быть в БД, а приложение желательно вообще не писать:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2012, 21:05 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37943006&tid=1541553]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
147ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 455ms |

| 0 / 0 |
