Introduction & Purpose
Database is already integrated in our lifestyle. When we store something, we rely on database so we can retrieve it when we needed through internet. In business, database is used for customer service, market analysis, transactions, etc.. But, can we use database for pharmacy shop? The answer is yes. But, pharmacy business is a bit more complicated than regular business because pharmacy business is positioned at the boundary between legal and illegal business. But can it (transaction through database) actually be controlled so the business still inside the legal boundary? Actually, yes for system, but not really for reality. But, the data and the restriction system inside the database can prevent them from happen by accountability feature that database offered that can prove if something illegal happened (even though it still need investigation to check that). Because of that reason, we created the Pharmacy Transaction System to control and record the transaction to ensure accountability and prevent the illegal transaction for the medicine that distribution supposed to be tightly restricted.
Final ER Diagram

Explanation
Before I explained the changes from the concept ER from the proposal, I should give tell one part of the value that is actually unnecessary (only for testing):
1. Comment part at shopkeeper is actually for debug testing
Now, I will explain the changes that our group made regarding the database design:
1. We added branch to meet the requirement of multiple store. Because of that, we modified ‘pharmasist’, ‘shopkeeper’, and ‘product’ to meet the requirement. For product, we forced to add redundancy to anticipate the case where there are similar product but at different branch. If these product are counted as one type, there will be a problem when the real item stock is empty at certain branch, because the product stock data is the sum of stock of every branches, not per branch, which is leads to inconsistency of product availability.
2. To accommodate the detailed automatic transaction record (‘invoice’ and ‘cart’) to ensure accountability, we added a boolean switch just in case if the product is no longer available, but there are already transaction that involved the product, or if the shopkeeper or the pharmacist that involved in the transaction no longer work at the pharmacy shop. If that happened, we can’t just delete it. But, we’ve got another option to disable it for good to prevent sabotage if the former staff wants to tamper with the system.
But still, there are things that we should change:
- We should add total price in cart just in case of price changes, so the actual total price won’t be affected by the changes (ensure the data consistency)
- In terms of security, we should add countermeasure just in case if there is a SQL injection attack
- Find the way to reduce redundancy
App Picture (Non-Admin)



Team:
Felix Anggara – 2101693851
Alfi Redzwan – 2101693574
Karuna – 1901520233
Responsiblility (Felix Anggara):
- Project Lead
- Logical
- Debugging
- Apps (Non-Admin)
Download
FULL REPORT