api - 数据模型 - 地区和国家
问题描述
我们将世界地图划分为 6 个区域,每个区域都有国家列表。
我们有我们标记的产品,以确保所有国家都有它。
由于我们有 200 多个国家/地区,因此我们如何对此进行建模并为每个产品标记此国家/地区列表将在表中创建大量行。
数据将通过产品 API 创建,我们在其中获取应用产品的一系列区域,然后我们在每个区域参数中获取包含的国家或排除的国家,以确定哪些是适用的所有国家。如果某个区域同时缺少包含国家和排除国家,则默认假设是该区域的所有国家/地区都是该产品包含的国家/地区的一部分。
如何对这种场景进行数据建模?我们不想将产品映射到排除的国家/地区。我们可能需要提供一个 API,可以为我们提供过滤条件中提供的国家/地区列表的产品列表。我们是否需要一个单独的表来维护地区和国家映射列表,然后在为产品识别国家之前对传入数据执行计算?
或者
一个更好的主意是始终通过包含和排除参数从 API 本身获取列表。
| seqId | Region | Country | ProductId
|:---- |:------: | :-----: | ----:
| 1 | America | US | 10001
| 2 | America | Canada | 10001
| 3 | America | Argentina | 10001
| 4 | Asia | India | 10001
| 5 | MEA | Egypt | 10001
产品创建的示例 API 请求:
{
"productId": 10001,
"regions": [
{
"name": "America",
"includedCountries": [
"US",
"Canada"
]
},
{
"name": "Middle East"
},
{
"name": "Asia",
"excludedCountries": [
"Nepal",
"Japan"
]
}
]
}
解决方案
想象一下,您有这种情况:
您有一张包含 6 个区域的表格:
RegionID RegionName
1 Western Europe
2 Central and Eastern Europe
3 Asia
4 Africa
5 Mediterranean & Middle East
6 Americas
以及包含国家及其相关地区的表格:
CountryID RegionID CountryName
11 1 Republic of Moldova
12 1 Romania
13 1 Russia
14 1 Serbia
Republic of Moldova
11 = CountryID = RegionID + CountryID使其易于理解和理解,Western Europe
如果您在地理上不好的话。
产品表如下:
ProductID ProductName CountryID
1001 AAA 11
1001 AAA 12
这意味着具有 1001 作为 ID 的产品仅在摩尔多瓦共和国和罗马尼亚可用,特别是在西欧地区。
推荐阅读
- python - Python:模拟写入文件对象而不创建文件
- excel - 自动搜索 CAGE 代码
- google-kubernetes-engine - 是否可以只有一个入口将流量路由到 GKE 上不同命名空间上的不同服务?
- r - 有没有办法根据股票在用户定义的时期内的回报来创建列?
- typescript - 打字稿检测类型
- python - tensor2tensor/avg_checkpoints 脚本是否错误
- postgresql - Flask-Migrate 脚本未对 Postgres 数据库应用更改
- javascript - 如何从javascript中的对象列表中找到字符串的某些部分与对象的字符串值的最完美匹配?
- python - 在 Python 中使用 pymunk 和 pygame 实现内置 GUI?
- java - 是否有任何方法/挂钩来强制 JVM 运行终结?