Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 具有免费和付费订阅的会员网站的最佳数据库结构_Sql_Sql Server_Tsql - Fatal编程技术网

Sql 具有免费和付费订阅的会员网站的最佳数据库结构

Sql 具有免费和付费订阅的会员网站的最佳数据库结构,sql,sql-server,tsql,Sql,Sql Server,Tsql,有一个处理用户注册的常规用户(UserID、UserName、Email、Password)表 为了处理两种付费订阅类型(每月和每年)的付费会员资格,应添加哪些其他表。如何使用三个值之一(null、Monthly或Yearly)向用户表添加会员资格字段?如何使用三个值之一(null、Monthly或Yearly)向用户表添加会员资格字段,还是每年?我想您可能需要区分会员详细信息和交易。我喜欢添加一个membership类型的列(应该是一个带有单独查找表的tinyint列),然后再添加一个memb

有一个处理用户注册的常规用户(UserID、UserName、Email、Password)表


为了处理两种付费订阅类型(每月和每年)的付费会员资格,应添加哪些其他表。

如何使用三个值之一(null、Monthly或Yearly)向用户表添加会员资格字段?

如何使用三个值之一(null、Monthly或Yearly)向用户表添加会员资格字段,还是每年?

我想您可能需要区分会员详细信息和交易。我喜欢添加一个membership类型的列(应该是一个带有单独查找表的tinyint列),然后再添加一个membership类型的列。如果要跟踪每个会员购买,可以使用单独的交易表跟踪购买。这还使您能够在未来扩展到其他类型的购买或交易,而无需修改数据模型。

我认为您可能需要区分会员详细信息和交易。我喜欢添加一个membership类型的列(应该是一个带有单独查找表的tinyint列),然后再添加一个membership类型的列。如果要跟踪每个会员购买,可以使用单独的交易表跟踪购买。这还使您能够在将来扩展到其他类型的购买或交易,而无需修改数据模型。

并且您如何知道它是否已支付,何时到期等。好的,无论您需要什么其他字段,您都可以添加,它不必位于另一个表中。用户和用户的成员资格详细信息之间的关系是一对一的,除非您希望用户同时拥有成员资格。然后,您需要一个单独的userMembership表。我填充的好像应该是一对多-这样至少管理员可以看到购买的订阅,过期的订阅没有。例如,用户已经有1个月的订阅,但他想购买1年的订阅,而不必等到当前订阅到期。。一个很好的例子是Xbox.com网站,在那里你可以购买黄金会员资格。管理员可以查看所有表格中的所有内容,所以一对多并不重要。如果希望一个用户能够同时拥有多个成员身份,则需要另一个表。否则,您可以在用户表中存储startDate、expDate(或membershipLength,例如,以月为单位)。从你想要的方式开始,使用它一段时间,然后如果你以后决定它不是正确的方式,就改变它。我会说添加另一个成员表,这样你以后就有了扩展的空间,即使你现在没有充分使用它。如果你为未来做计划,当你的需求发生变化时,事情会变得更容易。这样的表格还可以让你查看支出模式等,以及如何知道它是否已支付,何时到期等。好吧,无论你需要什么其他字段,你都可以添加,它不必在另一个表格中。用户和用户的成员资格详细信息之间的关系是一对一的,除非您希望用户同时拥有成员资格。然后,您需要一个单独的userMembership表。我填充的好像应该是一对多-这样至少管理员可以看到购买的订阅,过期的订阅没有。例如,用户已经有1个月的订阅,但他想购买1年的订阅,而不必等到当前订阅到期。。一个很好的例子是Xbox.com网站,在那里你可以购买黄金会员资格。管理员可以查看所有表格中的所有内容,所以一对多并不重要。如果希望一个用户能够同时拥有多个成员身份,则需要另一个表。否则,您可以在用户表中存储startDate、expDate(或membershipLength,例如,以月为单位)。从你想要的方式开始,使用它一段时间,然后如果你以后决定它不是正确的方式,就改变它。我会说添加另一个成员表,这样你以后就有了扩展的空间,即使你现在没有充分使用它。如果你为未来做计划,当你的需求发生变化时,事情会变得更容易。这样的表格还可以让你了解消费模式,等等。听起来不错。可能还需要一个栏目-会员费率(1个月| 3个月| 1年),以便下一次付款到期时,网站可以决定applySounds好的费率。可能还需要一个栏目-会员费率(1个月| 3个月| 1年),所以下次付款到期时,网站可以决定采用哪种费率