База, куда складывается история состояний/действий/статусов.
Примерно такой вид:
id; название; дата; состояние.
1; АА123; 10.01.23; создан;
2; КК777; 12.01.23; создан;
3; ОО001; 20.01.23; создан;
4; КК777; 12.01.23; оплачен;
5; АА123; 22.01.23; отменён;
6; КК777; 23.01.23; доставлен;
Мне нужно достать последнее состояние каждого. То есть нужно получить
6; КК777; 23.01.23; доставлен;
5; АА123; 22.01.23; отменён;
3; ОО001; 20.01.23; создан;
мой костыльный подход:
добавить поле "актуальность". перед каждой новой записью искать запись по названию, убирать от туда true у поля "актуальность" и записывать новую строку с "актуальность" = true. Таким образом, чтобы получить нужный массив я буду просто делать что-то вроде SELECT * WHERE "актуальность" = true.
Есть ощущение, что это неправильный подход. Поэтому вопрос: как должно быть?