建模POS(销售点)系统的问题

时间:2014-12-10 12:54:27

标签: sql sql-server

首先,为数据库初学者道歉。我正在开发一个POS系统,我在设计控制客户帐户的系统部分时遇到了一些麻烦。我将尝试解释以下要求:

客户拥有独特的信用账户;

此信用帐户将有零个或多个销售;

每次销售都是一种或几种产品。

这些是主要要求。我正在尝试开发的是一种方法,您可以使用该系统查询客户的帐户,并查看客户在该销售中购买的销售及其各自的产品(例如按日期分组)。

我已经看过各种数据库关系了,但我找不到使用多对多关系的解决方案。你能帮助我吗?感谢。

2 个答案:

答案 0 :(得分:0)

我从我理解的方式看待它的方式是你必须将其分成数据表

根据您的描述,我们可以识别一些实体,

  • 客户
  • CreditAccount
  • SaleOrder
  • 产品

一旦你完成了这个设置,你就可以创建一个查询来做你刚刚描述的事情,除非为你做这个,这对于一个合适的解决方案来说是个好的开始。

答案 1 :(得分:0)

假设您有以下表格:

CreditAccount

产品

您的销售很可能会导致发票表(或销售表 - 我不了解您的业务)。

此表将解析Product表和CreditAccount表之间的多对多。

发票表可能如下所示(根据您的其他需要,它可能会有很大差异):

  • InvoiceNumber(主键的优秀候选人,利弊所需的商业规则)

  • CreditAccount_FK(指向CreditAccount表中主键的外键)

  • Product_FK(Foreing键指向Product表中的主键)

  • 其他销售或发票栏目,如分行,销售人员,日期,时间,税金,付款方式等。

您可以选择在货币对上定义唯一键(CreditAccount_FK,Product_FK)。如果您没有唯一的InvoiceNumber,则可以使用上述组合作为主键。