在MySQL表中存储一个大数组

时间:2015-05-07 20:10:25

标签: mysql sql

我想为这些列stops的所有站点创建表id, stop_name, stop_lat, stop_long, route, arrivaltime,但我不知道如何将arrivaltime存储到表中,因为此列是一个大数组

像这样:

{
   "id": 1
   "stops_name": "Amersham ",
   "arrival_time": {
                    "mon-fri": [ "05:38", "06:07","06:37",.....50 entries],
                    "sat": ["05:34","06:01","06:31",...........50 entries],
                    "son": ["06:02","06:34","07:04",...........50 entries]
                   },
    "stops_lat": 83.837994,
    "stops_long": 18.700423
 }

是用mysql管理吗?

1 个答案:

答案 0 :(得分:1)

一般来说,你会分开"到达时间"进入一个新表,引用回停止表。您通常还会将每次存储为单行,然后选择整个行集合。

这最有效,因为它可以让您查询“时间”。列和搜索时间范围等,只获取相关的行。

对于" day",我很可能会使用Set来拥有一个可以是1个或更多值的列。还要考虑您可能需要在公共假期或其他特殊日期存储信息: https://dev.mysql.com/doc/refman/5.6/en/set.html

停止:id,stops_name,stops_lat,stops_long(1," Amersham",83.837994,18.700423) Stops_arrivals:id,stops_id,day,time(1,1," Mon"," 05:38"),(2,1," Mon",& #34; 06:07")等等