マルチリージョン Web サイトのデータベース構造に関するガイダンスを探しています。
私は craigslist.com のようなウェブサイトを立ち上げています。これにより、ユーザーは自分の街に追加を投稿できるようになります。MySQL データベースを使用しています。
サブドメインにリンクされたサブフォルダーとして地域を持ちたいです。たとえば、ca.mysite.com は mysite.com/ca に移動します。
私の質問は、ウェブサイトに別の都市を追加したい場合に、データベースをどのように管理すればよいかということです。
都市ごとに異なるデータベースを使用すると、ログインの詳細がデータベースのユーザーテーブルに登録した都市に保存されるため、ユーザーは他の都市にログインできなくなります。
ただし、コンテンツは craigslist のように都市固有のものであるため、これは問題にならない可能性があります。ただし、他の都市のユーザーに連絡したい場合は、できません。
また、ユーザーは同じ電子メールとユーザー名を使用してすべての都市に登録できるため、ユーザー名と電子メール アドレスが全体的に重複します。
たとえば、ユーザー テーブルとメッセージ テーブルを含む中央データベースを作成し、都市ごとに個別のデータベースを作成して、そのすべての都市の「投稿」を表示する場合、基本情報を表示するときに、都市固有のデータベースに加えて、ユーザー情報を保存する中央データベース。
または、すべてを 1 つのデータベースに保存し、ログインしているユーザーの場所を Cookie に保存し、それをセッション変数に渡し、その場所をデータベース クエリの一部として使用して、検索結果などを表示することもできます。
しかし、これは各クエリに不要なオーバーヘッドを追加しませんか?
たとえば、すべての検索に「 AND location = $user_location 」を追加する必要があります。
ここで何が最善の方法になるのか本当にわかりません。
これについて何か助けてくれてありがとう。