데이터베이스 구조의 디자인 문제가 있습니다. 목표는 고객이 일부 지역에서 제공하는 쿠폰에 대한 데이터베이스를 보유하는 것입니다. 각 오퍼는 많은 지역에서 제공 될 수 있습니다.데이터베이스 디자인 - 항목 및 지역
지역은 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 |
------------------------
레벨 1, 레벨 2 및 레벨 3을 연결 한 영역에 대해 ID를 만들었습니다. Offers_to_regions 테이블에는 쿠폰과 지역이 저장됩니다. 여기에 레벨 3 (020103)의 지역과 레벨 2 (0202)의 지역 1이 있습니다. 이 디자인을 사용하면 지역마다 다른 오퍼의 수를 쿼리하는 방법과 레벨 1의 지역에 대해 오퍼를 쿼리하는 방법에 문제가 있습니다. 레벨 2 및 레벨 3 영역.
지금까지 가지고있는 것을 보여주고 현재 어디에 서 있는지 구체적으로 질문하는 것이 좋습니다. – Bert
어떤 종류의 데이터베이스로 작업하고 있습니까? – omarello
@omarello MySQL. –