2016-12-21 2 views
1

Мне просто интересно, возможно ли иметь несколько записей в поле даты? Для VARCHAR я знаю, что это работает:PHP, MySQL - Несколько записей в поле DATE

dater = CONCAT_WS(',', dater, '$dater') 

Однако я просто интересно, если то же самое может быть достигнуто с поля DATE? Причина этого - каждый раз, когда запись обновляется, дата сохраняется. Любая помощь приветствуется.

Пример: 19-12-2016, 20-12-2016, 21-12-2016

+1

no. дата - это единственная дата. –

+0

Я не думаю, что это возможно, и почему вам нужно использовать поле DATE вместо Varchar ?. –

+0

невозможно, дата имеет конкретный формат – Beginner

ответ

1

Лучше всего, чтобы добавить таблицу обновлений к вашей схеме.

Скажем, ваша основная таблица называется info и имеет эти столбцы.

info_id INT (autoincrementing) 
    info_val VARCHAR(250) 
    info_last_update TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 

Затем вы добавляете таблицу под названием info_updates. Она имеет следующие столбцы:

info_update_id INT (autoincrementing) 
    info_id  INT (points to info table row) 
    info_update TIMESTAMP DEFAULT CURRENT_TIMESTAMP 
    info_why  VARCHAR(250) (text describing update, if you like) 

Затем, каждый раз, когда вы вставляете или обновить строку в info, вы также вставить строку в info_updates.

Тогда вы будете иметь возможность получить историю обновления с самыми последними обновлениями первой, как это:

SELECT info.info_id, info.info_val, 
      GROUP_CONCAT(info_updates.info_update ORDER BY info_updates.info_update) updates 
    FROM info 
    JOIN info_updates ON info.info_id = info_updates.info_id 
    GROUP BY info.info_id, info.info_val 
    ORDER BY MAX(info_updates.info_update) DESC 

Если вы копить ваши метки времени обновления в текстовое поле, разделенных запятыми, не все это хороший материал для поиска будет работать правильно.

Это может показаться дополнительной работой. Но текстовые поля, разделенные запятыми, вызывают гораздо большую дополнительную работу в долгосрочной перспективе.

Профессор Ричард Снодграсс написал прекрасную книгу на эту тему и сделал ее доступной. Developing Time-Oriented Database Applications in SQL.

Смежные вопросы