|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.03.2014, 20:18 | #1 |
Пользователь
Регистрация: 08.01.2014
Сообщений: 53
|
База данных кассы
Пишу диплом - АИС сети аптек. Как правильно реализовать в базе данных продажу товара (в аптеке).
Есть таблица Склад, содержащая данные о товаре и его количестве на складе. Есть таблица Продажи - поля: номер записи из таблицы Склад (какой товар), дата продажи, количество, номер продавца, сумма продажи. Я предполагаю такой алгоритм: 1. Фармацевт находит в таблице Склад товар - там видит остаток и номер шкафа и полки где лежит товар. 2. Идет и берет товар в нужном количестве - и добавляет его в чек. При этом количество товара на складе уменьшается. Чтобы другой фармацевт за другим терминалом видел, что, например, товара уже недостаточно. 3. После того как покупка вся собрана, фармацевт закрывает чек и записи добавляются в таблицу Продажи. Где хранить записи в незакрытом чеке? Вдруг сбой по питанию или проблема с сетью (БД сетевая, сама СУБД MySQL хранится на сервере, кроме этих таблиц еще полно будет). Не убавлять количество на складе нельзя - так как много товара ходового и если терминалов будет 3 - 4, то фармацевт будет ходит зря - в таблице есть товар, но на полке нет - унес другой фармацевт. Как это правильно сделать все? И почему когда в настоящей аптеке фармацевт приносит товар и "пробивает" его, то при ошибке для отмены этого "пробивания" нужен специальный штрих код или пароль заведующего, даже если чек еще не закрыт? Я хочу организовать таблицу для промежуточного хранения записей до закрытия чека. Если вдруг чего - то при перезагрузке компа и загрузке клиентского приложения просто в незакрытый чек загрузятся записи из этой таблицы выборкой для конкретного номера продавца, который за этим терминалом, можно будет добить недопробитый товар и закрыть чек. Записи будут перенесены в таблицу Продажи транзакцией, а в той таблице удалены. Вроде как все должно работать нормально так? Таблица Продажи по ТЗ нужна для того чтобы если кто из покупателей траванется, то по чеку и серии товара можно найти когда был куплен и в какой аптеке товар и у какого производителя он был закуплен аптечной сетью. X и Z отчетов в ТЗ не было. Последний раз редактировалось Muramidaza; 03.03.2014 в 21:51. |
03.03.2014, 22:13 | #2 | |
Старожил
Регистрация: 03.01.2014
Сообщений: 2,870
|
Цитата:
|
|
03.03.2014, 23:02 | #3 |
Пользователь
Регистрация: 08.01.2014
Сообщений: 53
|
Я не знаю как сделать процедуру продажи. Если через промежуточную таблицу - это будет приемлемо?
|
03.03.2014, 23:04 | #4 | ||
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Для товара можно вписать еще одно поле - Взято в чек. То есть еще не продано, но уже отложено со склада. И только когда чек оформлен - списывать товар со склада (со снятием признака - взято в чек). При включении системы автоматически снимать признак взято в чек со всех товаров. Вот так незамысловато решается проблема с питанием компа.
Цитата:
Цитата:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика Последний раз редактировалось Utkin; 03.03.2014 в 23:09. |
||
04.03.2014, 08:31 | #5 |
Форумчанин
Регистрация: 27.11.2012
Сообщений: 190
|
Для дипломной работы можно и не городить излишнего, главное же показать логику и принципы работы.
Товар забили в чек - он сразу списался со склада, и закоммитились. Убрали товар с чека - он упал обратно на склад. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
кассы в delphi | Terrance! | Помощь студентам | 8 | 20.09.2010 13:49 |
Переделать программу на кассы | mephistophel | Помощь студентам | 0 | 12.06.2010 17:57 |
Небольшая база в Open Office База данных. | sashaman | Фриланс | 3 | 11.04.2010 20:13 |
База данных с возможностью приема данных из файлов Excel | Al_Sha | БД в Delphi | 6 | 16.10.2009 15:34 |
Мемоордер кассы | SerArtur | Microsoft Office Access | 2 | 10.11.2008 15:42 |