我正在为我的POS系统设计mysql数据库。我会把它解释为最好的。请帮助我更成功地设计它!
标识
条形码(主键)
产品名称
公司-ID
类别-ID
(此表用于商店产品信息。这对于日常销售流程无用。对于商店产品信息。如果产品添加到数据库,则首先存储在该表中。之后,STOCK表获取信息这张表)
公司-ID(主键)
公司名称
电话
(这是针对商店产品公司的信息。)
类别的ID(主键)
分类名
(这是商店产品类别)
ID
条形码(主键)
获得价格
卖出价格,大宗
卖出价,零售
量
(该表用于日常使用。用于计算当前库存和所有流程。主要从INVENTORY表中获取信息。)
条形码(主键)
日期/时间
量
(该表处理每个库存重新编码。使用完整的卖家查看库存产品和日期的次数。以及可以计算每年的全部数量等...)
帐单无(主键)
日期/时间
客户ID
正常价格(100美元等......)
折扣价(99美元等......)
(这是关于商店账单信息。我的主要问题在这里。我不能在这一点上创造性地思考。所以我希望你帮助设计那个BILL表和SOLD_ITEM表。在那个时候我正在思考另一个表“SOLD_ITEM”用于减少数据重复。)
帐单无(主键)
条形码
数量(2等......)
每件商品价格(10美元等......)
每件商品 - 折扣价(2美元等......)
总折扣(4美元等......)
信用或借记
(如果BILL和BILL_ITEM有任何问题请注释。我想修复那部分。这两个表看起来像这样!)
<小时/> BILL
BILL_ITEM
bill-no条形码数量每件商品价格每件商品折扣价格总折扣信用卡或借记卡
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表总是按卖出售.....
谢谢。
答案 0 :(得分:1)
使用相同主键的多个表的原因很少 - last_stock_date和stock可以合并或包含键中的日期/时间。
您对此做了什么取决于您的业务规则 - 如图所示,BILL_ITEM数据与sold_item表定义匹配:您不需要2个表。数据分析师会提出如下问题:
1)您(或者您是否曾)想要支持客户信用账户?
如果是这样,bill_no可能在销售时不知道,因此您需要它在sold_item表上允许空值。 (你需要一个生成的列作为人工密钥。
如果没有,您可能需要line_number列(标准主 - 详细构造) - 否则您将缺少唯一标识符。