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

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

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

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

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

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

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

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

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

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


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

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

Все равно стало понятней, сейчас поделюсь соображениями
...
Рейтинг: 0 / 0
12.12.2006, 15:43
    #34193727
aL MIR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обеды сотрудников
Вот пример файлика с обедами
...
Рейтинг: 0 / 0
12.12.2006, 16:09
    #34193851
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обеды сотрудников
раз всплыло понятие "файлик разрешен для редактирования до 13 часов" появляются блокировки бизнес-уровня.Поэтому необходимо как-то их обеспечить,например через те же статусы пунктов меню.Например,статус пункта меню "Подтвержден" больше редактировать нельзя, "Заявлен" еще можно править,"Отгружен"-отправили клиенту.Тогда еще вспылывает одна таблица с полями Суррогатный ключ, Ссылка на соотв пункт меню (тут Вам должен был бы пригодиться сурогатный ключ для Блюдо-Человек, которого нет), Ссылка на табличку со статусами, дата установки.Понятно дело предыдущие статусы менять нельзя.МОжно только добавлять новые и то только до статуса "Отгружен"-пункт меню завершил свою жизнь.И отчетность как раз надо строить по пунктам типа "Отгружен":можно делать историю пунктов меню для аналитики например частоты смены позиций меню. В общем "фантазия ON".
...
Рейтинг: 0 / 0
12.12.2006, 16:09
    #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
12.12.2006, 16:11
    #34193864
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обеды сотрудников
А это то "а отчеты, понятное дело расчитываются хранимыми процедурами" тут причем?Селектом что-ли не вытащить?
...
Рейтинг: 0 / 0
12.12.2006, 16:16
    #34193892
Sgt.Pepper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обеды сотрудников
да, ну и, конечно, по всем таблицам наложить ограничения целостности... я уж не стал вдаваться в эти подробности, например
в menu
dishid + menudate - уникальный ключ
...
Рейтинг: 0 / 0
12.12.2006, 16:25
    #34193934
aL MIR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обеды сотрудников
Sgt.Pepper стоимость блюда конечно может меняться, и может хранить не сколько сотрудник заплатил а оплатил ли обед (блюда входящие в обед) те ДА или НЕт ?
...
Рейтинг: 0 / 0
12.12.2006, 16:26
    #34193943
Sgt.Pepper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обеды сотрудников
ShtockА это то "а отчеты, понятное дело расчитываются хранимыми процедурами" тут причем?Селектом что-ли не вытащить?
Хранимая процедура не может содержать select?
Лично я отчеты ВСЕГДА реализую хранимками, но давайте и я спрошу Вас - Ваш "селект" откуда вызывается - из клиента? из вьюхи? из хп?
Или я утверждал, что буду пользоваться в хп одними делитами?

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

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


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

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

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


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

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


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