数据库设计帐户与客户帐户

时间:2018-07-31 16:44:12

标签: mysql database-design primary-key composite-primary-key user-accounts

你好,堆满了花,

我正在为订购组重新设计系统。 我们有一百多家左右的公司(订购帐户)从我们这里订购。 也许其中有40家公司也与我们建立了在线商店(管理员帐户)。

在线商店具有属于其商店的用户的客户列表,而管理员帐户可让他们创建和管理客户及客户订单。

  • 因此,客户购物了,完成后订单就转到了公司。

  • 公司会验证订单(如果需要,可以合并订单以节省运输),然后将订单(/部分)发送给我们或从他们的库存中填充(/部分)。

  • 我们将他们的订单打包在我们的仓库中,并运送到订单上的地址。

  • 我们为公司开票。

  • 然后,公司与客户结算付款。 (我们从不直接向客户收费)

希望那不是太令人费解...

因此,我们再也不会直接向“客户”收取费用。但是在我们当前的系统中,我们以相同的方式存储所有帐户(订购,管理员和AND客户)。

在考虑重新设计时,我曾质疑这是否是最合逻辑的方法。我当时正在考虑将计费帐户(订购和管理)存储在帐户表中,并将客户存储在单独的客户表中。

我想进行此设置的方式是,我们的帐户具有一个帐户ID XXXXX,而用户具有类似的用户ID YYYYY,但是由两者的复合键(XXXXX-YYYYY)标识

因此,公司A的第一个客户是AAAAAA-000001,公司B的BBBBB-00001。当我考虑将客户订单开票给其母公司,并显示所有公司客户等时,这似乎很好。

但是,有一个客户表来存放客户非唯一的客户ID(即使这不是主键),这不是一个好主意吗?

我知道我可以使它工作,但是当做诸如customer_address表之类的将customerID和addressID相关联的事情时,它不是最优的吗?那就不需要使用一个accountID + customerID吗?

最初,我以为它们都是帐户,而帐号的结构只是AAAAA-00000是管理员帐户,AAAAA-00001是客户1,等等。

但是,这又让我回到了问题,我们的帐户表是否应该将客户/可结算帐户及其客户视为相同?

很抱歉,这个问题是否到处都是。我认为这表明我不确定应该如何设计所有这些结构。

任何输入将不胜感激。

0 个答案:

没有答案