我正在创建一个酒店应用程序,它从不同的来源获取酒店提要并将其存储到数据库以形成统一的结构并将 API 公开给移动应用程序。我正在使用 python/django 应用程序从 3 个不同的来源获取酒店。
现在每个酒店来源都有不同的便利设施,例如:
Source 1 [Expedia]
- Free WiFi
- Hairdryer In Room
- Cable TV
- Double Bed
- Single Bed
- Fireplace
Source 2 [SomeHotelProvider]
- WiFi
- Hairdryer
- Television
- and so on
例如,这里我们有相同的设施名称但名称不同(免费 WiFi 和 WiFi)。唯一的问题是在 Mobile 屏幕上它会显示两个过滤器 [Free WiFi, Wifi] 来过滤掉结果集。那么处理这些重复值的最佳方法是什么。
需要一个解决方案来创建映射表,将所有重复项映射到一个设施主表。
提前致谢。
最佳答案
我会使用 JSONB 列,这样您就可以接受任何类型的数据。以哈希格式。然后你将不得不找到重复的键并合并它们。
https://www.postgresql.org/docs/9.4/static/datatype-json.html
然后您将必须检查并合并重复的 key (wifi、免费 wifi 等)。不幸的是,这不能以编程方式完成,因为即使您编写了一个完美的程序来执行此操作,将来可能会有一种您没有考虑到的新形式,例如“包含的 Wifi”。
关于sql - 将来自不同来源的酒店设施映射到统一格式以删除重复项的数据库架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52927719/