2012-07-17 56 views
0

我有一个自定义会员供应商,我扩展了 - 添加了几个字段,名字,姓氏,地址,邮政编码和城市。保存/存储客户采购订单数据的最佳方法?

现在,这些字段驻留在aspnet_Membership表中,以便使用静态Membership asp.net类时可以轻松访问它们。

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

我应该在我的订单模型/表使用一组新的领域 - 名字,姓氏,地址,邮政编码,城市还是应该创建我的asp_Membershihp表和我的订单表之间的关系?另外,如果我有复制数据,一旦用户要求他的帐户被删除,如果我使用第一种方法,我不会有Orders表中的任何孤行。

因此,最好只在一张表中创建用户数据,名字,姓氏,地址,邮编,城市,并在aspnet_Membership表和订单表之间创建关系,或者在我的订单表中创建重复字段与aspnet_Membership表没有任何关系?优点缺点?

谢谢!

/P

+0

难道第二种方法(重复数据,无关系)会导致您失去客户端和订单之间的跟踪? – WDRust 2012-07-17 18:57:01

+0

是的。其实你给了我一个主意。也许最好的办法是同时使用数据和关系?优点?缺点? – PussInBoots 2012-07-17 19:01:21

+0

关系是最好的方式,重复数据导致必须记住更新它的多个地方。我建议你有一个认证用户表,用户名表/地址/等等,FK返回给用户(userId),并且有一个FK返回给客户的订单表。如果有人删除了他们的帐户,请将该客户标记为不活动。你永远不会丢失数据,没有重复,所有的事情都应该正常化。 – Tommy 2012-07-17 19:08:24

回答

0

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

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

在Order表上至少有一些数据重复的另一个有效原因是让所有必要的数据与表中的Order相关,从而避免客户请求删除其数据并保持原始值对于订单上的数据,如果客户数据要及时更改。

但是,如果您可以,但实际上不应删除用户数据,但有一个字段用于指定User isActive或isDeleted。