В настоящее время все наши таблицы имеют отметки времени created_at
и updated_at
, например,
Cart
| ID | created_at | updated_at | user_id |
|----|------------|------------|---------|
| 1 | 2020-06-15 | 2020-06-15 | 6 |
| 2 | 2020-06-16 | 2020-06-16 | 7 |
CartItem
| ID | created_at | updated_at | qty | cart_id |
|----|------------|------------|---------|---------|
| 3 | 2020-06-15 | 2020-06-16 | 2 | 1 |
| 4 | 2020-06-16 | 2020-06-18 | 1 | 1 |
| 5 | 2020-06-16 | 2020-06-18 | 6 | 2 |
User
| ID | created_at | updated_at | name |
|----|------------|------------|---------------------------|
| 6 | 2020-05-01 | 2020-06-19 | Lance |
| 7 | 2020-05-01 | 2020-05-01 | Barry (from Eastenders) |
Поле updated_at
изменяется с каждым INSERT.
Это позволяет нам запрашивать все Cart
, которые были обновлены с определенного момента времени примерно так:
SELECT * FROM Cart WHERE updated_at > 2020-06-15
Однако это не будет фиксировать обновления отношений FK, таких как CartItems
s и User
s .
Есть ли хороший способ справиться с этим, чтобы мы получили все Cart
, которые прямо или косвенно (через отношения FK) были обновлены?