对于允许访客结帐和注册用户结帐的电子商务网站,您将如何处理2个不同的客户群?
您是否将两个组存储在同一个表customers
中,该表的外键customer_group_id
指向另一个表customer_groups
?在这种情况下,您是否会担心重复的访客结账“污染”customers
表?
如何为2个客户群体捕获的信息有何不同?我认为差异在于客人结账客户将没有密码。
答案 0 :(得分:6)
我直接在订单中存储客户信息,而不是依赖客户记录中的信息。这样做有几件事:
我将订单信息视为历史数据。它不应该更改,因为数据库中的其他内容更改。例如,如果我向您订购了某些东西,并且稍后我会移动并更新我的帐单和送货信息,您仍应该知道之前的订单已经开帐单并运送到之前的地址。如果您依赖客户和订单之间的关系来保留账单并发送到信息,一旦我移动并更新我的个人资料,您认为您已发送到我的新地址。您可能不会将其视为一个问题,但它会是。
如果客户有帐户,您仍然可以从客户记录中获取当前信息以填充订单上的字段。对于客人,他每次都要打字。
答案 1 :(得分:0)
公共实体是Checkout。访客结账将是结账实体上与注册用户实体的空FK链接。