データベース構造の設計上問題があります。 目標は、クライアントがある地理的地域ごとに提供するオファーのデータベースを持つことです。 各オファーは多くの地域で提供することができます。データベースデザイン - アイテムと地域
領域がhierarhyである - 例:
subregion_1
subregion_11
region_111
region_112
subregion_12
region_121
region_122
subregion_2
subregion_21
region_221
は今、私は、データベースにその提供のためのoffer_1と地域を保存したいです。 offer_1格納されている場合は、私のoffer_1がregion_111に格納されて
- が、私は、ユーザーがsubregion_1、subregion_11とregion_111
- を閲覧しているこのオファーを表示したいと思います:私はahieveしなければならないものをあなたに3例を与えるだろう地域subregion_11とregion_121では、オファーは、ユーザーがsubregion_1、subregion_11、およびsubregion_11、subregion_12、およびregion_121のすべてのブランチをブラウズしているときに表示されます。
- 私のoffer_1がsubregion_1に格納され、オファーがsubregion_1ページおよびすべてのブランチsubregion_1。
また、各地域のさまざまなオファーの数を動的に、非常に高速に計算する方法を提供する必要があります。 誰かがこのデザインをどのように提案するのかアドバイスしていますか?
ここは私がこれほど遠いです。
Regions
------------------------------------------------------------
| id | level1 | level2 | level3 | name | level |
------------------------------------------------------------
| 02 | 02 | null | null | subregion_1 | 1 |
| 0201 | 02 | 01 | null | subregion_11 | 2 |
| 020103 | 02 | 01 | 03 | region_111 | 3 |
------------------------------------------------------------
Offers to regions
------------------------
| offer_id | region_id |
------------------------
| 1 | 020103 |
| 1 | 0202 |
------------------------
level1、level2、level3を連結して領域を作成しました。 Offers_to_regionsテーブルには、オファーと地域が保存されています。ここでは、オファー1のレベル3(020103)とレベル2(0202)のリージョンがあります。 このデザインでは、リージョンごとの異なるオファーの数を照会する方法と、レベル1のリージョンのオファーを照会する方法に問題があります。レベル2およびレベル3の領域。
あなたがこれまでに持っているものを見せて、あなたが現在立っている場所について具体的な質問をすることは、常に良い考えです。 – Bert
どのような種類のデータベースを使用していますか? – omarello
@omarello MySQL。 –