如何存储不同类型客户的订阅 - 数据库设计

时间:2016-09-06 23:34:00

标签: database-design

我正在为网站设计基于订阅的数据库。将有两种类型的订户,学校和学生。

由于学校和学生将包含不同的数据,我决定创建2个不同的表,名为学校和学生。

我现在要创建表订阅,我正在考虑以下选项:

选项1:我可以创建表clientgroup,如下所示:

clientgroup
=====================================
clientgroupID
clientgroupName (schools, students)

然后表客户端如下:

client
=====================================
clientID
clientgroupID
clientOriginalID // The id from student or school table. 

然后是订阅表:

subscription
===================================== 
subscriptionID
paymentID
clientID
subscriptionStartsAt
subscriptionEndsAt
subscriptionIsActive
subscriptionHasExpired

并在付款表结束时:

payment
=====================================
paymentID
clientID
paymentDateTime
paymentAmount
paymentIpAddress
paymentSessionID

我正在考虑的另一个选择是不创建表clientgroup和client,只是为了为组,学生和学校的订阅和付款创建单独的表。

这2个选项中哪一个更好?两者的利弊?还有其他任何建议吗?

0 个答案:

没有答案