У меня уже построенный проект (который использует Spring и JPA). Одна из возможностей позволяет пользователю добавлять место в базу данных (каждое место может быть связано с количеством тегов, их также необходимо одобрить администратором).
Я хотел бы настроить "ожидающую" систему состояний, когда пользователь добавляет новое место, это место добавляется в базу данных (postgreSQL в моем случае), но в "ожидающем состоянии" и на самом деле не рассматривается как последнее место, (тогда администратор должен будет одобрить это место, чтобы сделать его видимым для другого пользователя)
Есть ли какой-либо механизм, который Spring или JPA предлагает для его архивации? Или единственный способ - переделать таблицу и изменить все запросы? (И если да, то какой будет хороший дизайн?, добавив дополнительный столбец (состояние)? Или разделив таблицы и т.д.?
ps: так на данный момент мой дизайн выглядит так:
место таблицы: id_place/name/etc...
table tag: id_tag /name/etc..
table place_tag (который связывает каждый тег с его местом) id/id_place/id_taf Спасибо!
В соответствии с комментариями и обсуждением наиболее распространенным и эффективным способом я увидел, что это реализовано и сделано, включив дополнительный столбец в существующие таблицы, например, "проверенный".
Некоторые преимущества включают:
минимальные изменения в базе данных
эффективность запросов не падает
бизнес-логика и функциональный код не меняются кардинально (поскольку вы используете существующие методы и т.д.),
И снова это изменится на основе мнения, опыта, сложности системы и т.д.
Надеюсь, поможет.