Проектирование СУБД "Учет школьного питания" - PostgreSQL | |
---|---|
sphinx Автор Сообщений: 31886 Откуда: Каменск-Уральски Дата регистрации: 22.11.2006 |
[attachment 36534 _SQL.ZIP][attachment 36535 diagramma_20230410.jpg]Коллеги, приветствую!
Нужны советы и поправки в проектируемую базу. В приложении набросал структуру таблиц и INSERTы для каждой. Пока стоят такие вопросы. 1) Надо как-то прикрутить понятие Роль (например: Учитель, Родитель, РаботникСтоловой ). Известно, что при замене болеющего Учителя - его функции выполняет другой. Тут можно допустить, что все замены заранее известны, у каждого какие-то три определенных класса. Учитель вводит пароль, привязанный к определенному классу. Структура, видимо, такая: ID - идентификатор записи ID_CLASS - идентификатор класса ID_TEACHER - идентификатор учителя (и вкуда роль привязать?) 2) Посмотрите журнал питания (journal) и его связь с календарем (это по неделям, я его сам составил на 2023 год. ) Если криво/неправильно/негибко - значит видите, как лучше. Буду рад заценить. ------------------ "Veni, vidi, vici!"(с) ![]() |
Re: Проектирование СУБД "Учет школьного питания" - PostgreSQL | |
---|---|
Владимир Максимов Сообщений: 14146 Откуда: Москва Дата регистрации: 02.09.2000 |
У тебя сам подход не вполне корректен. Ты уже привязал "роли" к структуре данных. Надо более абстрактно данные организовать
- Персоны - ФИО, адреса, телефоны - Роли - Ученик, Учитель, Родитель, Работник Столовой - Ученики - те персоны, которые имеют роль "Ученика" - Учителя - те персоны, которые имеют роль "Учителя" При такой структуре, одна и та же "персона" может иметь несколько ролей. Нет жесткой привязки к таблице "учителей" при выборе заместителя. Вполне можно, например, "ученика" указать как выполняющего роль "учителя". ![]() |
Re: Проектирование СУБД "Учет школьного питания" - PostgreSQL | |
---|---|
sphinx Автор Сообщений: 31886 Откуда: Каменск-Уральски Дата регистрации: 22.11.2006 |
[attachment 36542 testdb-public_002.png]
------------------ "Veni, vidi, vici!"(с) ![]() |
Re: Проектирование СУБД "Учет школьного питания" - PostgreSQL | |
---|---|
sphinx Автор Сообщений: 31886 Откуда: Каменск-Уральски Дата регистрации: 22.11.2006 |
Пароль вводится Родителем для своего сына/дочери или Учителем для управления классом. Да, у Учителя может быть несколько классов - это учитываем в таблице GRANTS.
А по Журналу питания есть замечания/предложения? И как лучше учесть факт посещения учеником (да и остальными персонами, кроме родителей) завтрака и обеда? Может прям в таблице PERSONS добавить 2 логических поля IS_BRFST и IS_DINNER? ------------------ "Veni, vidi, vici!"(с) Исправлено 1 раз(а). Последнее : sphinx, 15.04.23 07:00 ![]() |
Re: Проектирование СУБД "Учет школьного питания" - PostgreSQL | |
---|---|
Владимир Максимов Сообщений: 14146 Откуда: Москва Дата регистрации: 02.09.2000 |
Ты делаешь слишком жесткую структуру. Может быть, для твоей задачи этого достаточно, но я бы делал более гибко
1. Связь "персон" и "ролей" - через таблицу-посредник, чтобы реализовать связь вида много-ко-многим. Идея в том, что одна и та же "персона" одновременно может выполнять много ролей. Можно оставить прямую ссылку на роль в таблице персон, но рассматривать ее как некую "роль по умолчанию". Ну, например, особо продвинутый ученик может на время замещать учителя. Для этого, в таблице посреднике создаешь 2 записи для этой персоны. Одна для роли ученика, другая для роли учителя 2. Таблица "персон" - это информация, не связанная с выполнением каких-то обязанностей или действий. Т.е. не надо в нее добавлять информацию о классе/учителе/обеде. Эта информация должна быть вынесена в отдельные таблицы. Ну, например, в отношении привязки к классам - это таблица-посредник между таблицей "класс" и таблицей "персона". Во-первых, получаешь возможность указывать одного учителя у нескольких классов, а, во-вторых, можно хранить историю, когда ученик перешел из одного класса в другой. Как ты планируешь смотреть, где ученик учился в прошлом году? А за все 11 лет учебы? То же самое по посещению чего-либо. Связь много-ко-многим. Есть "что-либо" (завтрак, обед, урок, класс), есть таблица "персон" и есть таблица связи между "чем-либо" и "персоной". В таблицу связи можно добавить разные поля. Например, время посещения с..по.. 3. Журнал питания - это просто "частный случай". Т.е. создается таблица "график питания" - Тип (Завтрак, Обед) - Дата - Время - Ссылка на меню (если нужно) Этому графику надо поставить в соответствие "персоны". Как? Снова через таблицу-посредника. Опять же, получаешь возможность видеть историю посещений PS: Хотя, может, это у меня уже "проф.деформация" связанная с конкретным приложением, в котором я сейчас работаю. Там множество связей вида много-ко-многим. Но, возможно, в твоей задачи такая гибкость не нужна и достаточно будет связей вида один-ко-многим ![]() |
Re: Проектирование СУБД "Учет школьного питания" - PostgreSQL | |
---|---|
sphinx Автор Сообщений: 31886 Откуда: Каменск-Уральски Дата регистрации: 22.11.2006 |
Замечания и предложения вполне конструктивны. Но Вы правы, очень бы не хотелось усложнять структуру, времени на написание немного, это бы успеть.
Может что-то еще успеем поменять, а что-то оставим. Про перевод из класса в класс я думал (но я считал по одной параллели, типа из-за неуспеваемости перевели в соседний класс). Переход с сентября в следующий класс - не продумывал, но решил бы через отдельный функционал, он нужен раз в год, и переход явно не ручной, а массовый - сразу по всем по классам. И тут тоже не все просто, по идее нужна таблица перехода, например, - из 8В в 9А (это я так переходил, даже сразу в 10А). А вот эту таблицу должен составить, видимо, Администратор (Завуч, Директор. КтоТоЕще). Спасибо, Владимир! ![]() ------------------ "Veni, vidi, vici!"(с) ![]() |
Re: Проектирование СУБД "Учет школьного питания" - PostgreSQL | |
---|---|
PaulWist Сообщений: 14740 Дата регистрации: 01.04.2004 |
Не наговаривая на себя ![]() Всё правильно, лучше "День потратить и за час долететь" (с) чем потом долго мучиться с "кривой" архитектурой. ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) ![]() |
Re: Проектирование СУБД "Учет школьного питания" - PostgreSQL | |
---|---|
of63 Сообщений: 25982 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Делай "по простому" (как тебе кажется удобно), но знай, что будешь переделывать (с "конвертацией" из старого в новое, даже не стал заковычивать старое новое, куячь! ) )
Исправлено 1 раз(а). Последнее : of63, 18.05.24 20:15 ![]() |
Re: Проектирование СУБД "Учет школьного питания" - PostgreSQL | |
---|---|
of63 Сообщений: 25982 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Если бы знать "как будет", даже при советах корифеев. Ребята, будет, примерно как вы хотели (если вы пименяли усилия к обученю младшего "комсостава"). Вы хотели, и делали, сдели сайт, образовали на нем круг заинтересованных, это хорошее дело, велиное, в ковычках, конечно, но нас обьединило. Не вижу смысла в технической фигне, но, ребята , вы очень оказались хорошми ребятами, поэтому не отстаю от этого сайта. Таких теплых ребят редко где встретишь. Вы это узнаете. ![]() |
Re: Проектирование СУБД "Учет школьного питания" - PostgreSQL | |
---|---|
of63 Сообщений: 25982 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
"множество связей вида много-ко-многим."
Посмотри понятие "нейросеть" - сумматоры, посмотри как настратвать коэффициэнты на входах сумматоров, "обучение" (это самое главное в ИИ - "обучение", показ искомого материала, и корреляция входного набора значений с искомым набором значений... () Тонкая вещь Доб. "показ", единократныЙ" (набор данных, котроый ты показываешь своему автомату), вероятности... и это не главное, главное, чего ты хочешь достигнуть этип программируемым автоматом... Было бы желание, хотение, и умение () Извините, влез в тему "питание школьников!" () папачес у меня "питание школьников", типа "Пу д.б. обеспечить бесперебойное питаение школьников", ... ну да, хорошо бы, школьники голодают... да? Исправлено 4 раз(а). Последнее : of63, 18.05.24 20:47 ![]() |
Re: Проектирование СУБД "Учет школьного питания" - PostgreSQL | |
---|---|
sphinx Автор Сообщений: 31886 Откуда: Каменск-Уральски Дата регистрации: 22.11.2006 |
Год уже, как тема неатуальна. Дочка все сама написала, оценку снизили с невнятной формулировкой до 4, зато похвалили за академичность подхода. Ну да, ну да...
![]() ------------------ "Veni, vidi, vici!"(с) ![]() |
Re: Проектирование СУБД "Учет школьного питания" - PostgreSQL | |
---|---|
sphinx Автор Сообщений: 31886 Откуда: Каменск-Уральски Дата регистрации: 22.11.2006 |
Цитата: Как бы тебе ответить на этот вопрос. Скорее нет. Но качество блюд может сильно различать в двух отдельно рассмотренных школьных столовых. Зависит от бюджета, умениях поваров и их ЧЕСТНОСТИ. Часто (ну скажем не все) мясо домой прут. Знакомая работает в детском садике, а ее напарница утащила курицу домой. Наказали обоих, типа солидарная ответственность. Для нее - 3к на ровном месте, за воровку. У них двое детей, 3к - мне один раз поужинать в кафе, для них сумма. ------------------ "Veni, vidi, vici!"(с) ![]() |
© 2000-2025 Fox Club  |