powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Обеды сотрудников
32 сообщений из 32, показаны все 2 страниц
Обеды сотрудников
    #34192641
aL MIR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем приветы!
Что скажите по этой модели? Может предложите лучшее решение?
Обеды сотрудников
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34192876
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПМСМ на первый взгляд все нормально, просто я бы сделал иерархический классификатор для блюд,или хотя-бы связал блюдо и его тип через m:n, так как кроме первое/второе обязательно всплывет горячее/холодное,а базу корежить из-за этого неправильно, а блюдо одновременно обладает этими двумя свойствами.
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34192982
aL MIR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Справочник Тип блюда это скорее лишнее так как его назначение только задать порядок в меню ;-)
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34192991
aL MIR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и поля ОПЛАЧЕНО наверно нада перенести в таблицу DINNER (обед)
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34193182
jikez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если у тебя случайно поменяли меню за прошлую дату, то получится что все сотрудники за этот день реально у тебя "съедят" эти исправления
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34193193
Sgt.Pepper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аргументы для составного PK в dish? Это что-то типа какое-то "первое блюдо" называется и стоит также как некое "второе блюдо"?

Если какой-то такой экзотики не предусматривается, то dishid - PK, dishtypeID - FK, как следствие из menu dishtypeID тоже убираем...
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34193355
aL MIR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Че та я совсем запутался,
а как быть если нада предварительно составить меню на определенную дату, тогда всем сотрудникам добавляем "пустой" обед (count=0)?

сейчас получаеться так
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34193435
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделайте табличку Статус и заполните ее значениями "Заказан", "Доставлен" и т.д. и делайте на нее ссылки в нужных местах для сотрудников.
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34193448
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. не для сотрудников,а для позиций меню.Хотя,кстати-можно обойтись и без статуса-например ввести дату начала действия данного меню и ставить ее в завтрашний день (хотя статус тоже бы не помешал)
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34193511
Sgt.Pepper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aL MIRВсем приветы!
Что скажите по этой модели? Может предложите лучшее решение?
Обеды сотрудников

aL MIR Че та я совсем запутался ,
а как быть если нада предварительно составить меню на определенную дату, тогда всем сотрудникам добавляем "пустой" обед (count=0)?

Сколько раз говорено - ФОРМУЛИРУЙТЕ НОРМАЛЬНО УСЛОВИЯ ЗАДАЧИ !

Сейчас всплывет "Ой, а как я узнаю из какого отдела сотрудники едят по талонам а из какого за наличные?"
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34193627
aL MIR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sgt.Pepper
Сейчас всплывет "Ой, а как я узнаю из какого отдела сотрудники едят по талонам а из какого за наличные?"

Не всплывет, если именно Вы не хотите отвечать (помочь), не отвечайте, никто не заставляет.
Исправляюсь. Спасибо!

Формулировка задачи:
Сотрудники фирмы питаются в столовой по предварительной записи :
сейчас это Excel файл в котором предварительно составлено меню на неделю (5 дней по 6-8 позиций) каждый напротив своей фамилии и блюда ставит 1, 0.5 и тд или оставляет пустым (после 13:00 доступ к файлу закрыт-меню на день сформировано, обед приготовлен) Есть Excel таблица Долги сотрудников: Фамилия и долг.

В конце месяца бухгалтерия суммирует все обеды сотрудника и вычитает из ЗП (или записывает в файл Долги сотрудников).

Нужно:
1.Отчет для бухгалтерии кто, сколько за определенный период?
2.Долги те кто сколько съел но не еще вычли из ЗП (по разным причинам)
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34193672
Sgt.Pepper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aL MIRНе всплывет, если именно Вы не хотите отвечать (помочь), не отвечайте, никто не заставляет.


Простите за резкость, помочь хотел, не хотел впустую как обычно выходит без детальной постановки задачи.

По сути. Любопытно взглянуть на скриншот екселя - это такая простыня, где в первом столбце список сотрудников, а в первой строке список всех 6-8 блюд за неделю? И в каждом пересечении фамилии с блюдом стоИт 0 или 1/2 или 1? Во дела-а-а!..

Все равно стало понятней, сейчас поделюсь соображениями
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34193727
aL MIR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот пример файлика с обедами
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34193851
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
раз всплыло понятие "файлик разрешен для редактирования до 13 часов" появляются блокировки бизнес-уровня.Поэтому необходимо как-то их обеспечить,например через те же статусы пунктов меню.Например,статус пункта меню "Подтвержден" больше редактировать нельзя, "Заявлен" еще можно править,"Отгружен"-отправили клиенту.Тогда еще вспылывает одна таблица с полями Суррогатный ключ, Ссылка на соотв пункт меню (тут Вам должен был бы пригодиться сурогатный ключ для Блюдо-Человек, которого нет), Ссылка на табличку со статусами, дата установки.Понятно дело предыдущие статусы менять нельзя.МОжно только добавлять новые и то только до статуса "Отгружен"-пункт меню завершил свою жизнь.И отчетность как раз надо строить по пунктам типа "Отгружен":можно делать историю пунктов меню для аналитики например частоты смены позиций меню. В общем "фантазия ON".
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34193853
Sgt.Pepper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предлагаю так:

menu (реальное меню по дням - что было доступно для заказа)

menuid pk
dishid fk
menudate
count (если необходимо отслеживать лимит заказа - сколько супа наварили в этот день)
cost (цена за единицу блюда если она может со временем меняться, иначе оставляем в dish )

dinner (оплата конкретного сотрудника на конкретную дату)

dinnerid pk
emplID fk
dinnerdate
payment (сколько заплатил)

dinner_detail (оплата конкретного сотрудника на конкретную дату)

dinnerdetailid pk
dinnerid fk
menuid fk
count (кол-во порций конкретного блюда)


ну где-то так в первом приближении...
Правда при таком раскладе я бы таблицу dinner переименовал - она больше отражает факт_оплаты. Или вообще отделил бы эти сущности - оплату и сам обед, т.к. может быть оплата без обеда, а обед без оплаты. Это если в последней таблице вместо dinnerid fk сделать emplID fk.
Решать Вам

а отчеты, понятное дело расчитываются хранимыми процедурами.
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34193864
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А это то "а отчеты, понятное дело расчитываются хранимыми процедурами" тут причем?Селектом что-ли не вытащить?
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34193892
Sgt.Pepper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, ну и, конечно, по всем таблицам наложить ограничения целостности... я уж не стал вдаваться в эти подробности, например
в menu
dishid + menudate - уникальный ключ
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34193934
aL MIR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sgt.Pepper стоимость блюда конечно может меняться, и может хранить не сколько сотрудник заплатил а оплатил ли обед (блюда входящие в обед) те ДА или НЕт ?
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34193943
Sgt.Pepper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShtockА это то "а отчеты, понятное дело расчитываются хранимыми процедурами" тут причем?Селектом что-ли не вытащить?
Хранимая процедура не может содержать select?
Лично я отчеты ВСЕГДА реализую хранимками, но давайте и я спрошу Вас - Ваш "селект" откуда вызывается - из клиента? из вьюхи? из хп?
Или я утверждал, что буду пользоваться в хп одними делитами?

Хотелось всего лишь подчеркнуть для автора ту мысль, что для отчетов (пункт "нужно" в ТЗ) никаких дополнительных структур в модели данных создавать не нужно.
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34193966
Sgt.Pepper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aL MIRSgt.Pepper стоимость блюда конечно может меняться, и может хранить не сколько сотрудник заплатил а оплатил ли обед (блюда входящие в обед) те ДА или НЕт ?
Т.е. отсекаем варианты,
1) что обед стоит 105 рублей, а он заплатил 100? Типа "ладно, завтра больше на пять заплатишь"
2) что он просто заплатил деньги за вчерашний неоплаченный обед НЕ_ОБЕДАЯ_СЕГОДНЯ
?

Тогда можно в предложенной мной схеме и не менять ничего. Только я бы на такие варианты сразу заложился чем переделывать потом.
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34194022
aL MIR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sgt.Pepper
Т.е. отсекаем варианты,
1) что обед стоит 105 рублей, а он заплатил 100? Типа "ладно, завтра больше на пять заплатишь"
2) что он просто заплатил деньги за вчерашний неоплаченный обед НЕ_ОБЕДАЯ_СЕГОДНЯ
?


Как раз такие варианты надо бы по-идеии учесть...
PS Блин
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34194091
Sgt.Pepper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aL MIRPS Блин
Сильно сказано!

По сути - классическая бухгалтерская задача. Одна сторона счета дебетовая (таблица КтоЧёКогдаСожрал), вторая кредитовая (таблица КтоЧёКогдаПлатил). Подсчитываются дебетовый и кредитовый оборот за период, один из другого вычитается, выводится сальдо - остаток, который сотрудник недоплатил или переплатил. Это так, на пальцах...
На самом деле в реальных бухсистемах чаще, конечно, обороты из обеих таблиц хранятся в одной - журнал операций/проводок и т.д.
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34194113
aL MIR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все понял - буду рыть(думать) в этом направлении.
А сейчас все таки останавлюсь на варианте оплачен или нет ВЕСЬ обед...
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34194120
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на "Лично я отчеты ВСЕГДА реализую хранимками, но давайте и я спрошу Вас - Ваш "селект" откуда вызывается - из клиента? из вьюхи? из хп?"

я посмотрю на требования по безопасности и с вероятностью 90% буду делать select на клиенте,который в свою очередь будет ползти на view сервера.


P.S. Вы работаете с MSSQL (плохих чувств к нему никаких не имею)?Как показал мой опыт отчеты из хранимок очень любят ценители данной СУБД.
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34194128
Sgt.Pepper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aL MIRВсе понял - буду рыть(думать) в этом направлении.
А сейчас все таки останавлюсь на варианте оплачен или нет ВЕСЬ обед...

ок, не возражаю )))
успехов
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34194184
Sgt.Pepper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shtockна "Лично я отчеты ВСЕГДА реализую хранимками, но давайте и я спрошу Вас - Ваш "селект" откуда вызывается - из клиента? из вьюхи? из хп?"

я посмотрю на требования по безопасности и с вероятностью 90% буду делать select на клиенте,который в свою очередь будет ползти на view сервера.


P.S. Вы работаете с MSSQL (плохих чувств к нему никаких не имею)?Как показал мой опыт отчеты из хранимок очень любят ценители данной СУБД.
Клиентовский селект к вьюхе в 90% случаев безопаснее, чем ХП? Вы на динамик намекаете? Или я просто совсем Вашу мысль не понял. Приведите такие требования по безопасности, пожалуйста, и поясните почему для Вашей СУБД ХП проигрывает в безопасности "select from view"

ps да, MSSQL.
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34194188
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прикольный топик, предновогодний :-)

Внесу лепту.

Пояснения:

1. Связь "Оплата - Заказ" может быть null.

2. "Блюдо" не меняется - при ззменении, например, цены добавляется новое.
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34194241
Sgt.Pepper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgПрикольный топик, предновогодний :-)

Внесу лепту.

Пояснения:

1. Связь "Оплата - Заказ" может быть null.

2. "Блюдо" не меняется - при ззменении, например, цены добавляется новое.
Никаких возражений. Просто автор судя по всему не имеет большого опыта в проектировании. Хотелось набросать ему модель "в принципе" сильно не вникая в нюансы, для окончательной реализации надо подробнее на месте разбираться в бизнес-процессах (читай "уточнять ТЗ")
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34194314
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Sgt.Pepper:
1.собственно я не на что не намекаю,а говорю о своем опыте работы с реальной системой,в которой часть скд реализованна во view и необходимо пользоваться стандартными средствами нашей системы.
2.У моей субд проблем с безопасностью лично мной не обнаружено (Oracle10G)
3.встроенное ср-во разработки клиентской части заточено под select из таблиц,поэтому с select из процедур просто никогда не заморачивались.
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34194396
Sgt.Pepper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shtockto Sgt.Pepper:
1.собственно я не на что не намекаю,а говорю о своем опыте работы с реальной системой,в которой часть скд реализованна во view и необходимо пользоваться стандартными средствами нашей системы.
2.У моей субд проблем с безопасностью лично мной не обнаружено (Oracle10G)
3.встроенное ср-во разработки клиентской части заточено под select из таблиц,поэтому с select из процедур просто никогда не заморачивались.
Так и есть - сначала "я посмотрю на требования по безопасности и с вероятностью 90% буду делать..." (просто архитектор проекта!), а потом "с select из процедур просто никогда не заморачивались" (просто начинающий сотрудник поддержки).

Никак обосновать не захотели. А ведь считается что неоправданное перекладывание логики на клиента есть не очень гуд. Ну, например, послезавтра чуть изменится логика формирования отчета - будете переписывать клиента и апгрейдить до нового релиза все 127 рабочих станций?
Или проще переписать логику ХП на сервере, а на клиенте "exec MyStoredProc" не потребует изменений?..
И по поводу безопасности - тут вы должны дать права на вьюху, там права на "execute sp" и не обязаны давать права на таблицы или вьюхи с которыми эта ХП работает. На MSSQL возникает проблема в том случае, если селект динамический, тогда помимо права на execute sp необходимы еще и права на таблицы и вьюхи из динамика. Как я слышал у Oracle и при динамических запросах таких артефактов не возникает (было по-моему в одном из топиков). Вот об этих намеках с Вашей стороны я и спрашивал, сильно удивляясь, что их 90% случаев. Вот так вот.

И потом ну а это что такое:
Shtock
2.У моей субд проблем с безопасностью лично мной не обнаружено (Oracle10G)

Возможно Вы тоже проблемами безопасности "просто никогда не заморачивались"? А так чего - дайте гостю полные права на все таблицы - быстро заметите, что проблемы с безопасностью не в "Вашей" СУБД, а с вероятностью 90% в Ваших руках. Это и начальство Вам быстро объяснит.
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34194750
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Г-н Sgt.Pepper,если Вы хотите поговорить о системе контроля доступа-создавайте ОТДЕЛЬНЫЙ топик.Я готов поговорить.Данный топик о вкусной и здоровой пище и я не считаю,что его надо зафлеймивать.

Но:
0.по поводу 90%-для некоторых вопросов используются временные таблицы Oracle (это несколько другая вещь чем в MS),поэтому для тех отчетов,на которые не хватает сил написанием select данные помещаются в эти таблицы,контроль доступа к которым опять таки реализован средствами Oracle.
1.по поводу "select из процедур не заморачиваюсь"-да,не заморачиваюсь,и что в этом такого.если мне не нужен инструмент я его не применяю,особенно если я не вижу преимуществ перед альтернативными способами решения проблемы
2."Никак обосновать не захотели. А ведь считается что неоправданное перекладывание логики на клиента есть не очень гуд. Ну, например, послезавтра чуть изменится логика формирования отчета - будете переписывать клиента и апгрейдить до нового релиза все 127 рабочих станций?
Или проще переписать логику ХП на сервере, а на клиенте "exec MyStoredProc" не потребует изменений?.."
Во-первых,не вижу проблемы обновления релиза всех 215 рабочих станций.Проблема была решена 3 года назад.
Во-вторых,если Вы внимательно читали,то я обращаюсь ко view,которое с таким же успехом и поправлю.
В третьих,если в отчете изменится кол-во входных параметры, то и Вы и я будем править клиента (если конечно у Вас не построена система вызова хранимых процедур на клиенте с использованием словаря системы,где описаны входные и выходные параметры-правда в таком случае работа не менее геморойна).
3.вся схема безопасности в нашей системе построена на основе системы безопасности Oracle-самопала нет никакого, причем за ее настройку (что логично) несет ответственность специально обученный пользователь Офицер доступа, так что если он даст права на все бизнес-сущности и операции с ними (права надо раздавать на них, а не на таблицы) пользователю-значит так надо.Любой же пользователь,который входит в систему имеет право только на CONNECT,а дальше работает уже СУБД,поэтому я не могу дать гостю права на все таблицы.

P.S. Со свое стороны считаю флейм законченным.Спасибо за внимание.
...
Рейтинг: 0 / 0
Обеды сотрудников
    #34195277
Sgt.Pepper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShtockСо свое стороны считаю флейм законченным.Спасибо за внимание.
Согласен, будет повторение по кругу.
Всего хорошего, успехов.
...
Рейтинг: 0 / 0
32 сообщений из 32, показаны все 2 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Обеды сотрудников
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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