我正在寻找有关多区域网站数据库结构的指导。
我正在建立一个类似于 craigslist.com 的网站,允许用户在他们的城市发布添加内容。我正在使用 MySQL 数据库。
我希望将区域作为链接到子域的子文件夹,例如 ca.mysite.com 转到 mysite.com/ca。
我的问题是当我想向我的网站添加另一个城市时如何管理数据库。
如果我为每个城市使用不同的数据库,那么用户将无法登录到其他城市,因为他们的登录详细信息存储在他们在其数据库的用户表中注册的城市中。
但这可能不是问题,因为内容是特定城市的,例如 craigslist。但是,如果他们想联系其他城市的用户,他们就做不到了。
此外,总体上会有重复的用户名和电子邮件地址,因为用户可以使用相同的电子邮件和用户名在所有城市注册。
如果我创建一个中央数据库,例如,一个用户表和一个消息表,然后为每个城市创建一个单独的数据库,其中包含所有城市的“帖子”,那么在显示基本信息时,我需要咨询城市特定的数据库以及存储用户信息的中央数据库。
或者,我可以将所有内容存储在一个数据库中,并将登录用户的位置存储在 cookie 中,将其传递给会话变量,并在显示搜索结果等时将该位置用作数据库查询的一部分。
但是,这不会给每个查询增加不必要的开销吗?
例如,每次搜索都必须添加“AND location = $user_location”。
我真的不知道这里最好的方法是什么。
提前感谢您对此的任何帮助。