Лучшая практика для удаления данных, добавленных пользователем на демонстрационном сайте? - PullRequest
1 голос
/ 04 октября 2011

Это первый раз, когда мне нужно создать демонстрационный сайт (это делается с некоторыми примерами данных в PHP с PostgresSql). В настоящее время мы разрешаем пользователю войти в систему и выполнить операции, доступные на веб-сайте. Что мне нужно? чтобы сделать это, как только пользователь завершит операцию, мне нужно удалить данные, созданные пользователем.

Но в чем проблема? Если пользователь вставляет данные в БД, созданную в демонстрационном домене, то, если я удаляю данные домена, может быть другой пользователь, вставляющий или удаляющий данные в другом сеансе. Поэтому я не хочу отображать операции другого пользователя. (например, вставить, удалить) для других. Это не приведет к конфликту. Как я могу это сделать.

Ответы [ 2 ]

2 голосов
/ 04 октября 2011

Создайте новую базу данных для каждого демонстрационного пользователя.Заполните каждую новую базу данных образцами данных из «основной» базы данных, которая никогда не изменяется кем-то, кто пробует демо.Затем, когда пользователь закончил работу с демо-версией, удалите всю базу данных.

Вы можете уточнить это так, что вам нужно всего лишь создать несколько временных таблиц для каждого пользователя, это действительно зависит от того, какие данныеизменяется пользователем, когда он использует демо.

2 голосов
/ 04 октября 2011

Есть несколько способов сделать что-то подобное.

  1. Используйте сессию. Не знаю, насколько это возможно, но если вы просто поместите все данные в фиктивные объекты в СЕССИИ, все будет в порядке.
  2. На самом деле это может быть 1b. Вы можете использовать куки, чтобы делать то же самое с SESSION, но, по общему признанию, это более раздражает.
  3. Создание макетов таблиц & mdash; каждый раз, когда новый пользователь входит в систему, создайте серию уникальных таблиц для этого пользователя с префиксом UID для этого пользователя. Да, это создает ползучесть схемы, но это также означает, что у вас есть простой способ увидеть, какое пространство можно восстановить.
  4. Поместить данные в БД в некотором роде. Это может означать, что вы добавляете некоторые дополнительные данные в начало некоторых данных пользователя, которые помечают их как временные в БД. Однако проблема в том, что ваши столбцы SERIAL не могут быть сброшены должным образом, поскольку ваши последовательности останутся на своем текущем положении после того, как вы удалите их данные.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...