У меня в голове крутится концептуальная проблема, и я надеюсь, что люди смогут предложить новые способы ее решения с точки зрения логики, необходимой для решения задачи.
У меня есть база данных по спасению животных, в которой есть раздел о лекарствах. Я хотел бы, чтобы запас автоматически вычитался при его использовании. Проблема заключается в «открытых бутылках», которые представляют собой что-то вроде антибиотика, срок годности которого составляет 7 дней. Мне нужно, чтобы этот счетчик отсчитывался от первого использования до полного использования бутылки (затем сбрасывался при следующем использовании) ИЛИ предупреждал, когда 7 дней истечет, чтобы ее можно было утилизировать.
Предлагаемая мной структура таблицы:
Лекарства (уже есть)
Общая таблица только для хранения названий лекарств
Идентификатор лекарства
Лекарство
Класс
1
Ципрофлоксацин
Антибиотик
2
метакам
Противовоспалительное
Принятые лекарства (также есть)
Записывает подробную информацию о лекарствах, которые давали животному. Думаю, мне придется однажды внести поправки в эту таблицу. я обдумываю это. вероятно, придется связать это по Profile_id с таблицей профилей лекарств. Вводимая доза обычно записывается в мг, и ее необходимо рассчитывать по таблице профилей неотложных лекарств. например 50 мг будут уменьшать объем примерно на 3,3 мл.
given_id
идентификатор лекарства
пациент_id
Доза (мг)
дан
1
1
4
50
20/1/2024
2
1
4
50
5.13.2024
Предлагаемая таблица – профиль экстренных лекарств
Это сделано для хранения некоторых наборов профилей лекарств для экстренной помощи, поскольку каждое лекарство может быть составлено по-разному. например, 15 мг/мл или 30 мг/мл того же лекарства. Объем будет общим объемом. эта доза будет использована для расчета выше (50 (данные) / 15 (профиль)) = 3,3 мл
profile_id
лекарство
доза (мг)
объем (мл)
Опыт (дни)
< tr>
1
1
15
125
5
2
1
30
125
365
Предлагаемая таблица – акции корректировки
Для отслеживания неуказанных корректировок запасов – например, уничтожения, запасов и т. д. Следуя примеру, на этом этапе было добавлено 4 флакона и 1 прием ципрофлоксацина 15 мг/мл.
adj_id
profile_id
вход/выход
Объем (мл)
1
1
IN
500
2
1
ВЫХОД
125
Предлагаемая таблица — запасы
Она используется для отслеживания баланса запасов, поэтому выдаваемые лекарства и корректировки запасов будут записываться в эту таблицу для обновления данных. баланс. В этой таблице должна быть только одна запись на каждый «profile_id».
balance_id
profile_id
общий объем
< /tr>
1
1
350
2
2
210
Итак, это все, что у меня есть вот что: я думаю, что когда лекарство выдается, форма записывает в две таблицы: одну для записи транзакции (meds_given), а другую для вычета объема (инвентаря). Я думаю, что смогу просчитать всю математику, чтобы сделать выводы и обновить инвентарь, но я не могу придумать механизм, позволяющий ему «знать», когда открывается новая бутылка, и предупреждать пользователей, когда истекает опыт (в днях). срок)
Моей первой мыслью было добавить поле opens_on в таблицу инвентаризации, которое будет служить триггером для будущих запросов. Хотя я не могу представить, как он будет обновляться только при определенных условиях: например. количество целого флакона, например, каждые 125 (мл).
Если лекарство записано как выданное, а остаток представляет собой целое количество, например. 1000 мл (4 бутылки по 250 мл), затем при остатке 9992,5 мл (потому что было дано 7,5 мл) начинается обратный отсчет даты. Если через 6 или 7 дней баланс находится между 750 и 1000, выдается предупреждение о том, что срок его действия истекает (то же самое относится и к 1-250, 250-500 и т. д.).
Если бы я добавил поле даты, оно должно было бы оставаться на месте и не обновляться при введении других лекарств до тех пор, пока не будут достигнуты следующие объемы 750/500/250.
Подробнее здесь: https://stackoverflow.com/questions/791 ... ally-php-m
Концептуальная проблема – управление запасами – автоматическое определение открытого состояния (php/mysql) ⇐ Php
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение