|
|
|
Обеды сотрудников
|
|||
|---|---|---|---|
|
#18+
Всем приветы! Что скажите по этой модели? Может предложите лучшее решение? Обеды сотрудников ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 11:43 |
|
||
|
Обеды сотрудников
|
|||
|---|---|---|---|
|
#18+
ПМСМ на первый взгляд все нормально, просто я бы сделал иерархический классификатор для блюд,или хотя-бы связал блюдо и его тип через m:n, так как кроме первое/второе обязательно всплывет горячее/холодное,а базу корежить из-за этого неправильно, а блюдо одновременно обладает этими двумя свойствами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 12:42 |
|
||
|
Обеды сотрудников
|
|||
|---|---|---|---|
|
#18+
Справочник Тип блюда это скорее лишнее так как его назначение только задать порядок в меню ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 13:03 |
|
||
|
Обеды сотрудников
|
|||
|---|---|---|---|
|
#18+
Да и поля ОПЛАЧЕНО наверно нада перенести в таблицу DINNER (обед) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 13:05 |
|
||
|
Обеды сотрудников
|
|||
|---|---|---|---|
|
#18+
Если у тебя случайно поменяли меню за прошлую дату, то получится что все сотрудники за этот день реально у тебя "съедят" эти исправления ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 13:42 |
|
||
|
Обеды сотрудников
|
|||
|---|---|---|---|
|
#18+
Аргументы для составного PK в dish? Это что-то типа какое-то "первое блюдо" называется и стоит также как некое "второе блюдо"? Если какой-то такой экзотики не предусматривается, то dishid - PK, dishtypeID - FK, как следствие из menu dishtypeID тоже убираем... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 13:43 |
|
||
|
Обеды сотрудников
|
|||
|---|---|---|---|
|
#18+
Че та я совсем запутался, а как быть если нада предварительно составить меню на определенную дату, тогда всем сотрудникам добавляем "пустой" обед (count=0)? сейчас получаеться так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 14:20 |
|
||
|
Обеды сотрудников
|
|||
|---|---|---|---|
|
#18+
сделайте табличку Статус и заполните ее значениями "Заказан", "Доставлен" и т.д. и делайте на нее ссылки в нужных местах для сотрудников. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 14:37 |
|
||
|
Обеды сотрудников
|
|||
|---|---|---|---|
|
#18+
т.е. не для сотрудников,а для позиций меню.Хотя,кстати-можно обойтись и без статуса-например ввести дату начала действия данного меню и ставить ее в завтрашний день (хотя статус тоже бы не помешал) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 14:39 |
|
||
|
Обеды сотрудников
|
|||
|---|---|---|---|
|
#18+
aL MIRВсем приветы! Что скажите по этой модели? Может предложите лучшее решение? Обеды сотрудников aL MIR Че та я совсем запутался , а как быть если нада предварительно составить меню на определенную дату, тогда всем сотрудникам добавляем "пустой" обед (count=0)? Сколько раз говорено - ФОРМУЛИРУЙТЕ НОРМАЛЬНО УСЛОВИЯ ЗАДАЧИ ! Сейчас всплывет "Ой, а как я узнаю из какого отдела сотрудники едят по талонам а из какого за наличные?" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 14:52 |
|
||
|
Обеды сотрудников
|
|||
|---|---|---|---|
|
#18+
Sgt.Pepper Сейчас всплывет "Ой, а как я узнаю из какого отдела сотрудники едят по талонам а из какого за наличные?" Не всплывет, если именно Вы не хотите отвечать (помочь), не отвечайте, никто не заставляет. Исправляюсь. Спасибо! Формулировка задачи: Сотрудники фирмы питаются в столовой по предварительной записи : сейчас это Excel файл в котором предварительно составлено меню на неделю (5 дней по 6-8 позиций) каждый напротив своей фамилии и блюда ставит 1, 0.5 и тд или оставляет пустым (после 13:00 доступ к файлу закрыт-меню на день сформировано, обед приготовлен) Есть Excel таблица Долги сотрудников: Фамилия и долг. В конце месяца бухгалтерия суммирует все обеды сотрудника и вычитает из ЗП (или записывает в файл Долги сотрудников). Нужно: 1.Отчет для бухгалтерии кто, сколько за определенный период? 2.Долги те кто сколько съел но не еще вычли из ЗП (по разным причинам) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 15:18 |
|
||
|
Обеды сотрудников
|
|||
|---|---|---|---|
|
#18+
aL MIRНе всплывет, если именно Вы не хотите отвечать (помочь), не отвечайте, никто не заставляет. Простите за резкость, помочь хотел, не хотел впустую как обычно выходит без детальной постановки задачи. По сути. Любопытно взглянуть на скриншот екселя - это такая простыня, где в первом столбце список сотрудников, а в первой строке список всех 6-8 блюд за неделю? И в каждом пересечении фамилии с блюдом стоИт 0 или 1/2 или 1? Во дела-а-а!.. Все равно стало понятней, сейчас поделюсь соображениями ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 15:28 |
|
||
|
Обеды сотрудников
|
|||
|---|---|---|---|
|
#18+
Вот пример файлика с обедами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 15:43 |
|
||
|
Обеды сотрудников
|
|||
|---|---|---|---|
|
#18+
раз всплыло понятие "файлик разрешен для редактирования до 13 часов" появляются блокировки бизнес-уровня.Поэтому необходимо как-то их обеспечить,например через те же статусы пунктов меню.Например,статус пункта меню "Подтвержден" больше редактировать нельзя, "Заявлен" еще можно править,"Отгружен"-отправили клиенту.Тогда еще вспылывает одна таблица с полями Суррогатный ключ, Ссылка на соотв пункт меню (тут Вам должен был бы пригодиться сурогатный ключ для Блюдо-Человек, которого нет), Ссылка на табличку со статусами, дата установки.Понятно дело предыдущие статусы менять нельзя.МОжно только добавлять новые и то только до статуса "Отгружен"-пункт меню завершил свою жизнь.И отчетность как раз надо строить по пунктам типа "Отгружен":можно делать историю пунктов меню для аналитики например частоты смены позиций меню. В общем "фантазия ON". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 16:09 |
|
||
|
Обеды сотрудников
|
|||
|---|---|---|---|
|
#18+
Предлагаю так: 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. Решать Вам а отчеты, понятное дело расчитываются хранимыми процедурами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 16:09 |
|
||
|
Обеды сотрудников
|
|||
|---|---|---|---|
|
#18+
А это то "а отчеты, понятное дело расчитываются хранимыми процедурами" тут причем?Селектом что-ли не вытащить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 16:11 |
|
||
|
Обеды сотрудников
|
|||
|---|---|---|---|
|
#18+
да, ну и, конечно, по всем таблицам наложить ограничения целостности... я уж не стал вдаваться в эти подробности, например в menu dishid + menudate - уникальный ключ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 16:16 |
|
||
|
Обеды сотрудников
|
|||
|---|---|---|---|
|
#18+
Sgt.Pepper стоимость блюда конечно может меняться, и может хранить не сколько сотрудник заплатил а оплатил ли обед (блюда входящие в обед) те ДА или НЕт ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 16:25 |
|
||
|
Обеды сотрудников
|
|||
|---|---|---|---|
|
#18+
ShtockА это то "а отчеты, понятное дело расчитываются хранимыми процедурами" тут причем?Селектом что-ли не вытащить? Хранимая процедура не может содержать select? Лично я отчеты ВСЕГДА реализую хранимками, но давайте и я спрошу Вас - Ваш "селект" откуда вызывается - из клиента? из вьюхи? из хп? Или я утверждал, что буду пользоваться в хп одними делитами? Хотелось всего лишь подчеркнуть для автора ту мысль, что для отчетов (пункт "нужно" в ТЗ) никаких дополнительных структур в модели данных создавать не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 16:26 |
|
||
|
Обеды сотрудников
|
|||
|---|---|---|---|
|
#18+
aL MIRSgt.Pepper стоимость блюда конечно может меняться, и может хранить не сколько сотрудник заплатил а оплатил ли обед (блюда входящие в обед) те ДА или НЕт ? Т.е. отсекаем варианты, 1) что обед стоит 105 рублей, а он заплатил 100? Типа "ладно, завтра больше на пять заплатишь" 2) что он просто заплатил деньги за вчерашний неоплаченный обед НЕ_ОБЕДАЯ_СЕГОДНЯ ? Тогда можно в предложенной мной схеме и не менять ничего. Только я бы на такие варианты сразу заложился чем переделывать потом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 16:31 |
|
||
|
Обеды сотрудников
|
|||
|---|---|---|---|
|
#18+
Sgt.Pepper Т.е. отсекаем варианты, 1) что обед стоит 105 рублей, а он заплатил 100? Типа "ладно, завтра больше на пять заплатишь" 2) что он просто заплатил деньги за вчерашний неоплаченный обед НЕ_ОБЕДАЯ_СЕГОДНЯ ? Как раз такие варианты надо бы по-идеии учесть... PS Блин ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 16:42 |
|
||
|
Обеды сотрудников
|
|||
|---|---|---|---|
|
#18+
aL MIRPS Блин Сильно сказано! По сути - классическая бухгалтерская задача. Одна сторона счета дебетовая (таблица КтоЧёКогдаСожрал), вторая кредитовая (таблица КтоЧёКогдаПлатил). Подсчитываются дебетовый и кредитовый оборот за период, один из другого вычитается, выводится сальдо - остаток, который сотрудник недоплатил или переплатил. Это так, на пальцах... На самом деле в реальных бухсистемах чаще, конечно, обороты из обеих таблиц хранятся в одной - журнал операций/проводок и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 16:56 |
|
||
|
Обеды сотрудников
|
|||
|---|---|---|---|
|
#18+
Все понял - буду рыть(думать) в этом направлении. А сейчас все таки останавлюсь на варианте оплачен или нет ВЕСЬ обед... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 17:02 |
|
||
|
Обеды сотрудников
|
|||
|---|---|---|---|
|
#18+
на "Лично я отчеты ВСЕГДА реализую хранимками, но давайте и я спрошу Вас - Ваш "селект" откуда вызывается - из клиента? из вьюхи? из хп?" я посмотрю на требования по безопасности и с вероятностью 90% буду делать select на клиенте,который в свою очередь будет ползти на view сервера. P.S. Вы работаете с MSSQL (плохих чувств к нему никаких не имею)?Как показал мой опыт отчеты из хранимок очень любят ценители данной СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 17:05 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=34193627&tid=1544836]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
142ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 471ms |

| 0 / 0 |
