【发布时间】: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