在MySQL中向行中插入多个日期的最佳方法

时间:2011-09-13 11:40:13

标签: mysql database-design

我有一个表单来预订多个日期的广告,这些表单是使用表单中的日历选择的,然后以JSON格式发布。一个例子是:

[20110915, [20110918, 20110925], 20110926, 20110927]

但是我在为每个广告存储此json字符串时遇到问题。

  1. 您如何建议将此日期与广告相关联?
  2. 如何使用其中一个日期选择广告。
  3. 我不想将每个日期分别存储在不同的表中(这会使db变得笨重)。

1 个答案:

答案 0 :(得分:0)

  

您如何建议将此日期存储与广告的关系?

您应该将它们存储在关系表中,该关系表将包含广告的ID和预订日期。

ad_bookings

ad_id | booking_date

PRIMARY KEY将是化合物(ad_id, booking_date)

示例数据将是:

ad_id        | booking_date
---------------------------
1            | 2011-09-15
1            | 2011-09-18
1            | 2011-09-19
1            | 2011-09-20
1            | 2011-09-26
2            | 2011-09-27
2            | 2011-09-30

  

如何使用其中一个日期选择广告。

    SELECT *
      FROM ads a
INNER JOIN ad_bookings ab
        ON a.ad_id = ab.ad_id
       AND ab.booking_date = '2011-09-30'