php - 使用 MySQL 进行多区域市场数据库设计

标签 php mysql database regional

我正在寻找有关多区域网站的数据库结构的指导。

我正在建立一个类似于 craigslist.com 的网站,该网站将允许用户在其所在城市发布添加内容。我正在使用 MySQL 数据库。

我希望将区域作为子文件夹链接到子域,例如ca.mysite.com 转到 mysite.com/ca。

我的问题是,当我想向我的网站添加另一个城市时,如何管理数据库。

如果我为每个城市使用不同的数据库,那么用户将无法登录其他城市,因为他们的登录详细信息存储在他们在其数据库的用户表中注册的城市中。

但这可能不是问题,因为内容是特定于城市的,例如 craigslist。 但是,如果他们想联系其他城市的用户,他们将无法联系。

此外,总体上会存在重复的用户名和电子邮件地址,因为用户可以使用相同的电子邮件和用户名在所有城市注册。

如果我创建一个中央数据库,例如,一个用户表和一个消息表,然后为每个城市创建一个单独的数据库,其中包含所有这些城市的“帖子”,那么在显示基本信息时,我将需要咨询特定于城市的信息db 加上存储用户信息的中央数据库。

或者,我可以将所有内容存储在一个数据库中,并将登录用户的位置存储在 cookie 中,将其传递给 session 变量,并在显示搜索结果等时使用该位置作为数据库查询的一部分。

但是,这不会给每个查询增加不必要的开销吗?

例如每个搜索都必须添加“AND location = $user_location”。

我真的不知道这里最好的方法是什么。

预先感谢您对此提供的任何帮助。

最佳答案

看来你还不清楚自己要构建的系统。在开始为此系统设计数据库之前,请确保您拥有系统要求的完整描述。一些可以帮助您澄清的示例问题是:

  • 您的网站提供哪些功能?
  • 使用您的系统的用户可以执行哪些操作?每个 Action 有什么限制吗?

与系统性能相关的一些其他问题: - 您预计有多少用户使用您的系统? - 每个 Action 的执行速度和正确性如何?哪些操作经常使用?

在没有仔细了解系统需求的情况下设计系统是没有意义的。

关于php - 使用 MySQL 进行多区域市场数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26765735/

相关文章:

php - 如何使用 PHP dom 设置元素的 id?

php - 如何根据另一个表中的数据对从一个表中选择的数据进行排序?

mysql - 如何在两个本地虚拟开发环境之间同步数据库

java - Hibernate 没有更新数据库记录

php - 使用 PHP 循环后将数组附加到 JSON 输出

php - 在javascript中显示对象

sql - Informix SQL 查询 : Two similar queries returning different results

database - 使用 Docker gitlab-ce 镜像安装 GitLab

mysql - SQL、MySQL 和 PHP

database - 奥帕 : passing database as function parameters