如何将这个 json feed 实现到数据库结构中?

How to implement this json feed into a database structure?

我目前正在开发一个应用程序,我要在其中添加客户可以购买产品的商店。现在我有一个包含商店的 json 提要,我可以从中提取所有商店的数据。

phone、邮政编码和地址等字段是标准字段,易于实施。但是 json 提要还为我提供了商店 open/close.

工作日的数组

我没有将类似的东西实现到数据库中的经验。我将如何实施呢?我认为仅将数组转储到单个字段中可能不是一个好主意,但我不必再次想到它,因为它只是通过 api 调用从 json 提要进行更新。

我可能会创建类似 opening_hours table 的东西。我可能会使用:

但是每家商店的工作日为 1、2、3、4、5、6,对应于星期一到星期六。这可能会导致大量重复数据,但我想根本没有办法解决这个问题?

希望有人能指导我正确的方向。

json 供稿示例:

openinghours: [
    {
        closing: "18:00",
        weekday: 0,
        opening: "12:00"
    },
    {
        closing: "18:00",
        weekday: 1,
        opening: "09:00"
    },
    {
        closing: "18:00",
        weekday: 2,
        opening: "09:00"
    },    
    {
        closing: "18:00",
        weekday: 3,
        opening: "09:00"
    },    
    {
        closing: "18:00",
        weekday: 4,
        opening: "09:00"
    },    
    {
        closing: "17:30",
        weekday: 5,
        opening: "09:00"
    },        
    {
        closing: null,
        weekday: 6,
        opening: null
    }
],
lng: 4.6217623,
id: 5014

首先,您需要为您的应用存储这些数据吗?如果您永远不会使用它们,完全可以接受 table 忽略 opening/closing 小时。

如果您要使用此数据,它是否仅用于显示?如果是这样,您可以将 JSON 数组以其原始格式存储在 "hours" 字段中以供存储 table,并在需要时对其进行解码。如果数据需要 可搜索 ,那么是的,您可能会创建一个一对多 table,如上所述。或者,您可以创建一个包含每天列的 table:

store_id  mon_op  mon_clos  tue_op  tue_clos . . .  sat_op  sat_clos

这样可以避免一对多的问题,但实际上并没有那么清晰。但是,无论您选择哪种格式,我仍然建议将小时字符串转换为适当的 date/time 格式,以便于搜索。