/ / MySQL: додайте створені та модифіковані поля - php, mysql

MySQL: додати створені та змінені поля - php, mysql

Який найкращий підхід для додавання створених та модифікованих полів у MySQL:

1) використання таких функцій MySQL on update CURRENT_TIMESTAMP або

2) за допомогою PHP (чи чогось іншого)? Чому?

Якщо відповідь - MySQL, як би ви це зробили?

Відповіді:

3 для відповіді № 1

Це гарне запитання. Я гадаю, вам потрібно було б поглянути на це з двох аспектів

  • продуктивність
  • архітектура реалізації

З точки зору продуктивності, якщо ви вже єстворення рядка або оновлення рядка, а потім оновлення часової позначки на цьому рядку незначне, і тому я не думаю, що існує велика різниця між оновленням з php або через тригер.

З точки зору архітектури впровадженнятригери є досить простими і в межах php, якщо у вас є хороша архітектура ORM (або використовується щось на зразок Doctrine), ви можете перезаписати свою логіку save () в абстрактний шар, щоб завжди оновлювати створення / модифіковані часові позначки при збереженні.

Тож особисто я би реалізував це в PHP, якщо у мене в основному є весь доступ до моєї бази даних через ORM, а не через тригери чи збережені програми.


0 для відповіді № 2

Моя перевага - змінити або додати стовпчик до свогоТаблиця MySQL, як LastChanged, з типом TIMESTAMP і значенням за замовчуванням як CURRENT_TIMESTAMP. Отже, коли рядок додається до таблиці, дата автоматично генерується.

Тоді ви можете мати тригер у форматі ПІСЛЯ ОНОВЛЕННЯ, який оновить останню змінену дату, коли запис буде змінено

    IF NEW.LastChanged = "0000-00-00 00:00:00" THEN
SET NEW.LastChanged = NOW();
END IF