数据库架构

时间:2012-03-12 11:50:07

标签: mysql sql database

我认为这个问题很简单......

我没有大型可扩展数据库的经验,我正在一个项目中工作,我正面临着这个设计问题:

我有一个用于下标的表,并且有一个表可以订阅他们可以订阅的服务,两个表都会增长,下标可以订阅他们想要的服务数量,问题是如何更好地关系subscritor - >服务我不知道这将是正确的方式,我认为它应该是这个选项之一:

  • 为每个服务创建一个表,以便对下标列表进行设置。
  • 为子标识符创建一个表,并以dinamically方式添加新列以表示服务。
  • 为子查询创建一个表,并使用二进制掩码存储用户订阅的服务列表。

哪种方式是最好,更实用,可扩展的解决方案?任何其他选择都是apreciated。先谢谢。

PS:我正在使用MySQL

2 个答案:

答案 0 :(得分:3)

这是一种经典的多对多关系 - 在关系数据库中,处理这种情况的标准方法是关系的每一面都有一个表,另一个用于存储它们之间的链接 - 就像这样:

Subscriber
----------
SubscriberID (PK)
SubscriberName
etc...

Service
-------
ServiceID (PK)
ServiceName
etc...

SubscriberService
-----------------
SubscriberID (PK)
ServiceID    (PK)

答案 1 :(得分:1)

你可以这样做......

One table for subscriptors
One table for services and 
last one to store which subscriptors have which services...

这对你的项目来说是最好的......