如何为 POS 系统设计出色的数据库结构
Posted
技术标签:
【中文标题】如何为 POS 系统设计出色的数据库结构【英文标题】:How to design great database structure for POS system 【发布时间】:2016-03-03 19:26:36 【问题描述】:我正在为我的 POS 系统设计 mysql 数据库。我会尽力解释。请帮我设计得更成功!
库存
身份证 条码(主键) 产品名称 公司编号 类别 ID
(此表用于存储产品信息。这对于日常销售过程没有用。用于存储产品信息。如果产品添加到数据库,首先存储在该表中。之后从 STOCK 表获取信息这张表)
公司
公司 ID(主键) 公司名称 电话
(这是商店产品公司信息。)
类别
类别 ID(主键) 类别名称
(这是商店产品类别)
库存
身份证 条码(主键) 获取价格 批量销售价格 售价零售 数量
(该表用于日常使用。用于计算当前库存和所有流程。主要从 INVENTORY 表中获取信息。)
LAST_STOCK_DATE
条形码(主键) 日期/时间 数量
(该表处理每个库存重新编码。使用 full 供卖家查看库存产品和日期的次数。以及可以计算每年的全部数量等...)
账单
账单号(主键) 日期/时间 客户编号 正常价格(100 美元等...) 折扣价(99 美元等...)
(用于商店账单信息。我的主要问题在这里。我无法创造性地思考这一点。所以我需要你的帮助来设计那个 BILL 表和 SOLD_ITEM 表。那时我正在考虑另一个表“SOLD_ITEM”用于减少数据重复。)
SOLD_ITEM
账单号(主键) 条码 数量(2 个等...) 每件商品的价格(10 美元等) 每件商品的折扣价(2 美元等...) 总折扣(4 美元等...) 贷记或借记
(如果 BILL 和 BILL_ITEM 有任何问题,请发表评论。我想修复那部分。这两个表看起来像这样!)
帐单 账单号日期/时间客户 ID 正常价格折扣价格 B1 15/11/01 C1 30 美元 22 美元 B2 15/11/01 C2 30 美元 18 美元
BILL_ITEM 账单编号 条形码 数量 每件价格 每件折扣价格 总折扣 贷方或借方 B1 1111 2 $ 10 $ 2 $ 4借记卡 B1 2222 4 $ 20 $ 1 $ 4借记卡 B2 3333 5 $ 10 $ 2 $ 10借记卡 B2 4444 2 $ 20 $ 1 $ 2借记卡借款
基本上我想减少我的账单表的重复。请看一下,告诉我我的方式是正确的还是需要改变。如果需要更改,请评论。
BILL_ITEM 表总是一个接一个地填充销售.....
谢谢。
【问题讨论】:
【参考方案1】:很少有理由让多个表具有相同的主键 - last_stock_date 和 stock 可以合并或在键中包含日期/时间。
您对此执行的操作取决于您的业务规则 - 如图所示,BILL_ITEM 数据与 sold_item 表定义相匹配:您不需要 2 个表。数据分析师会提出以下问题: 1) 您(或将来)想要支持客户信用账户吗? 如果是这样,在销售时可能不会知道 bill_no,因此您需要它以允许在 sold_item 表上出现空值。 (您需要一个生成的 - 列作为人工键。 如果没有,您可能需要一个 line_number 列(标准主从构造) - 否则您会丢失一个唯一标识符。
【讨论】:
以上是关于如何为 POS 系统设计出色的数据库结构的主要内容,如果未能解决你的问题,请参考以下文章
如何为技术博客设计一个推荐系统(中):基于 Google 搜索的半自动推荐
[iPhone]你将如何为下面给出的结构设计核心数据对象模型