【问题标题】:Best way to save/store customer purchase order data?保存/存储客户采购订单数据的最佳方式?
【发布时间】:2012-07-16 17:55:29
【问题描述】:

我有一个自定义会员提供程序,我扩展了它 - 添加了几个字段,名字、姓氏、地址、邮政编码和城市。

现在,这些字段位于 aspnet_Membership 表中,因此我可以在使用静态 Membership asp.net 类时轻松访问它们。

现在,我希望能够将客户采购订单数据(名字、姓氏、地址、邮政编码和城市)保存到数据库中。

我应该在我的订单模型/表中使用一组新字段 - 名字、姓氏、地址、邮政编码、城市,还是应该在我的 asp_Membershihp 表和我的 Orders 表之间创建关系?

另外,如果我有重复数据,一旦用户要求删除他的帐户,如果我使用第一种方法,我的 Orders 表中将不会有任何孤立行。

所以,最好将用户数据、名字、姓氏、地址、邮政编码、城市只放在一个表中,并在 aspnet_Membership 表和 Orders 表之间创建关系,或者在我的 Orders 表中创建重复字段与 aspnet_Membership 表没有关系?利弊?

谢谢!

/P

【问题讨论】:

  • 第二种方法(复制数据,没有关系)不会导致您失去客户和订单之间的跟踪吗?
  • 是的。其实你给了我一个想法。也许首选的方法是同时使用欺骗数据和关系?优点?缺点?
  • 关系是最好的方法,数据重复导致必须记住在多个地方更新它。我建议您有一个用于身份验证的用户表,用于名称/地址/等的客户表,其 FK 返回用户 (userId),以及一个订单表,其 FK 返回客户。如果有人删除了他们的帐户,请将客户标记为不活动。你永远不会丢失数据,没有重复,一切都应该标准化。
  • @Tommy,一般情况下是这样,但这些是订单,如果您更改客户数据,则无论如何都不应该更改过去订单的计费数据,对吗?
  • @M.Ang 这是正确的。我不想更改过去订单的结算数据。

标签: asp.net-mvc database asp.net-membership e-commerce


【解决方案1】:

在这种情况下,我宁愿拥有这种关系。

也是您存储订单的数据(我假设至少从名称 :))我会在订单上维护一组单独的数据,因此可以选择指定不同的计费/运输数据而不是它网站上的身份。

在订单表上复制至少一些数据的另一个正当理由是在表中包含与订单相关的所有必要数据,从而避免客户要求删除其数据时出现问题,并保持原始值如果客户数据要及时更改,则订单上的数据。

但是,如果您可以,您不应该实际删除用户数据,而是有一个字段,您可以在其中指定用户是活跃还是已删除。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-10
    • 2021-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-01
    • 2023-04-08
    • 1970-01-01
    相关资源
    最近更新 更多