MySQL - 将数据作为json存储在一列或单独的列中

时间:2018-03-06 11:27:06

标签: mysql json

我正在使用PHP和MySQL创建一个页面,显示各个商店的开放时间。

数据来自另一个网站,通过API。目前有一个cron脚本可以将商店信息复制到本地数据库,这样可以在显示数据时更快。

我的计划是将开放时间添加到此cron任务并将它们存储在本地数据库中。是否更好的做法是在一周中的每一天向数据库添加7列,或者有一列并将开放时间添加为json编码的字符串?

1 个答案:

答案 0 :(得分:0)

与往常一样,存储数据的最佳方式取决于您将如何查询数据。

使用JSON可以轻松地将一周中的所有日期存储在一个JSON结构中,但这使得很难进行任何搜索(如上面评论的andrew)。这取决于哪些任务对您的应用程序更重要。

使用七列可以轻松搜索特定日期的开放时间,但更难以搜索所有七天的开放时间。或者在最早的开放时间找到星期几。或者总结每周开放的小时数。

我会把它存储为一个单独的表,每个商店每周一行:

CREATE TABLE ShopOpen (
  shop_id INT NOT NULL,
  day_of_week TINYINT NOT NULL,
  open_start TIME NOT NULL,
  open_end TIME NOT NULL,
  PRIMARY KEY (shop_id, day_of_week)
);
相关问题