Мне нужно создать систему статей, в которой никакие статьи не удаляются. Более того, они хотят, чтобы все редакционные статьи, после сохранения оригинала, создавали новые статьи, а не перезаписывали старые.Нет таблицы удаленной базы данных
Итак, человек A пишет статью 1 и сохраняет ее. Лицо B редактирует статью 1.
Каков наилучший способ организовать эту базу данных? Мои мысли:
- статьи,
- Статьи,
- ID,
- old_id (ID статьи до редактирования, так что пользователь может 'отменить'),
- удален (булево, если удалено не будет отображаться в системе, если пользователь просматривает «мусор»),
- названия,
- статьи
- создали (резервную?),
- обновлено (дата последнего обновления),
- user_id (идентификатор пользователя, который последний раз обновил статью).
Таким образом, когда пользователь редактирует статью, он создает новую запись статьи, но сохраняет старый идентификатор статьи в качестве ссылки.
Это лучший способ сделать это или есть более эффективный способ?
Стоит ли хранить статьи в новой таблице или оставить их в текущей таблице? Я не думаю, что система будет испытывать большой стресс, но мне все равно хотелось бы, чтобы она была эффективной. – Brad
Держите его в том же самом столе. Легко откат, если вам нужно. – Sampson
Я бы пошел логическим маршрутом isActive. Таким образом, вы можете сохранить более позднюю версию, даже если она отклонена и не выбрана как «активная» статья. Я думаю, что его можно было бы более эффективно индексировать и получать доступ, чем выбирать максимум определенного идентификатора статьи. Вы также можете начать с создания текущей таблицы, отфильтровывая свой флаг bool isActive, и если производительность становится проблемой, вы можете столкнуться с проблемой управления текущей «текущей_таблицей». –