【发布时间】:2011-10-30 22:30:39
【问题描述】:
我正在编写一个应用程序,我将其作为服务和独立应用程序提供。 它是用 Zend Framework 编写并使用 MySQL。
在将其作为服务提供时,我希望用户在我的网站上注册并拥有 customer1.mysite.com、customer2.mysite.com 等子域。
我希望将所有内容都放在一个数据库中,而不是为每个用户创建新数据库。
但现在我想知道如何做得更好。 我想出了两个解决方案: 1. 在每个表中都有用户 ID,只需将其添加到每个数据库请求的 WHERE 子句中。 2. 重新创建具有唯一前缀的表,例如“customer1_tablename”、“customer2_tablename”。
哪种方法更好?优点和缺点? 是否有其他方法可以将同一数据库中的用户分开?
莱昂蒂
【问题讨论】:
-
非常有趣的问题!我正在做一个类似的项目,我对这里的意见非常好奇! @莱昂蒂;您是在租用服务器并为每个用户提供自己的托管环境吗?还是您只是根据客户 ID 或其他任何方式将所有文件存储在一个目录中?您如何看待每个客户的电子邮件地址?
-
我要做的只是一个在主机和动态子域上使用 mod_rewrite 的应用程序。因此,当用户访问 customer1.mysite.com 时,应用程序会在数据库中查找 customer1 的 ID,然后采取相应措施。这样,当我更新应用程序时,它会同时为所有用户更新。我的申请中不需要电子邮件地址,所以我没有考虑过。
标签: php mysql zend-framework multi-tenant