首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >药店数据库设计

药店数据库设计
EN

Database Administration用户
提问于 2016-08-14 08:05:26
回答 1查看 15.9K关注 0票数 0

我为药店设计了一个分贝,它将销售药品批发和零售。我把每一条药片,胶囊和药瓶分别存放在一个单独的领域进行零售销售。有什么更好的方法吗?作为一名程序员,我想不出是否有必要在订购表中存储每个客户支付的金额。是否有必要在单独的桌子上有进进出出存货?这是我的数据库:

这个数据库设计会有什么问题吗?请提出一个更好的方法。

EN

回答 1

Database Administration用户

发布于 2016-09-09 11:37:47

您可能需要考虑将产品抽象到SKU中以获得订单细节。与其让订单细节显示出售了哪一种特定的药丸,不如更笼统地显示出售了哪种药物。这样做的原因是,例如,你可能会卖出100粒某种类型的药丸。也许你只剩下40批,所以你用另一批中的60来填充订单。这将显示在销售收据上的两个订单细节,这将不是理想的,因为客户不想或不需要知道这个细节。

从实际的产品批次中抽象产品列表的另一个优点是,您可以获得一个简单的产品列表,而无需重复。这只是一个很好的数据库规范化。产品名称和产品批号具有不同的功能依赖性,因此它们不属于第三范式(3NF)下的同一表。

您可以而且应该有库存移动记录,记录用于填充每个订单的特定库存。

您应该将实际支付的金额与订单详细信息一起存储。这是因为管理系统更新项目的价格可能会随着时间的推移而变化,因此如果不存储实际支付的价格,可能会丢失信息。类似地,您可能决定以促销价格出售,如果您只存储正常价格(或管理系统更新项目),将丢失信息。

我建议不要把存货清点放在单独的桌子上。所有库存变动都应放在一个表中,按照旧的会计方法有两个数量列(入/出),或者最好是按照新的电算化会计方法,有正数和负数的单一数量栏。将库存保存在一个表中可以大大降低代码复杂性。

票数 4
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/146735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档