数据库架构,节省管理员用户,网站成员,时事通讯订阅者。什么是最佳做法

时间:2011-09-03 07:48:32

标签: php mysql zend-framework database-design

我相信很多人之前可能会问过这样的问题,但我认为这里存在差异。 我有一个使用Zend Framework + doctrine的网站。我使用zend_acl和自定义zend_auth作为doctrine.i已经为管理员用户使用了不同的表,而为网站成员使用了另一个表。 我这样做是因为网站成员的字段太多而管理员不需要填写该表单。除了成员表中只有少数“可空”字段 我即将添加简报功能,我在想,如果业务规则会怎么样 是允许人们注册而不一定是成员。

我要把它存放在哪里?创建另一个表听起来像糟糕的设计,因为维护可能是一个问题。

所以这是我的问题。
问题1 :将网站管理员和网站成员分开是最佳做法吗? 问题2 :应该允许简报订阅者订阅而不是网站社区的成员。如何处理?

感谢阅读。

1 个答案:

答案 0 :(得分:0)

问题1:您可以通过添加自己的独立表来逻辑扩展预构建的站点管理表,这些表包含您需要的额外属性。只需将FK用于已预先构建的站点管理表中的PK即可。这是任何系统自定义的常见做法,在这种情况下,您拥有一个不包含所需的所有列或表的预构建系统。

RE问题2:这取决于您网站的目的。如果您正在为企业,慈善机构,服务机构等建立网站,那么我建议您希望允许尽可能多的人订阅您的简报。如果你正在建立一个秘密社团的网站,那么你最好还是让它锁定!这是业务规则决策,而不是数据库设计决策。

这方面的技术设计是捕获非成员订阅者的电子邮件(或蜗牛邮件 - 如果这是您的简报的交付方式)。然后,您构建一个视图,执行UNION所有成员和非成员订阅者。此视图将为您提供所有订阅者的列表,无论您了解其中的哪些内容以及它们如何适合您的网站。