我有数据库结构的设计问题。 我们的目标是为我们的客户提供的每个地理区域的优惠提供数据库。 每个报价都可以在很多地区提供。数据库设计 - 项目与区域
的区域在hierarhy - 例如:
subregion_1
subregion_11
region_111
region_112
subregion_12
region_121
region_122
subregion_2
subregion_21
region_221
现在我想在数据库存储为要约offer_1和地区。我给你3个例子我有什么ahieve:
- 当我offer_1存储在region_111然后我想显示当用户在浏览subregion_1,subregion_11和region_111
- 此优惠。如果offer_1存储在区域subregion_11和region_121中,则当用户浏览子区域_1,子区域_11和子区域_11,子区域_12和区域_121的所有分支时显示报价,当我的offer_1被存储在子区域_1中时,则报价被显示在子区域_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 |
------------------------
我创建ID为地区从1级串联,2级以及3级。在Offers_to_regions表中,我存储了优惠和地区。在这里,我有3级地区(020103)和2级地区(0202)的优惠1. 有了这个设计,我有问题如何查询每个地区的不同优惠的数量,以及如何查询level1地区的优惠, level2和level3地区。
显示目前为止的内容总是一个好主意,然后询问有关您目前所处位置的具体问题。 – Bert
你在使用什么样的数据库? – omarello
@omarello MySQL。 –