Вопрос дизайна, какой шаблон использовать - PullRequest
3 голосов
/ 19 марта 2010

Описание проблемы: У нас есть требование временно хранить моментальный снимок объекта в базе данных до определенного периода времени, пока не будут завершены все процессы для утверждения данных. Как только все утверждения завершены, данные должны быть постоянно сохранены в фактической таблице.

Пример:

  1. Рассмотрим сущность под названием «Пользователь». Один из способов создать пользователя - это «Процесс создания учетной записи».
  2. «Процесс создания учетной записи» должен собирать всю информацию Пользователя и сохранять ее во временной таблице в базе данных.
  3. Данные должны использоваться «процессом утверждения учетной записи» для запуска процесса проверки.
  4. После успешного завершения всей проверки данные пользователя сохраняются в фактической таблице.

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

Ответы [ 2 ]

9 голосов
/ 19 марта 2010

У меня обычно была бы одна таблица пользователя со столбцом «Утверждено». Большинство запросов будут извлекать только те строки, где этот флаг имеет значение true. Например. Вы можете создать представление "ApprovedUsers" как

SELECT ... FROM Users WHERE Approved = 1

(где ... все столбцы, кроме утвержденного столбца).

Тогда вам не нужно возиться с двумя столами. Большинство клиентов, кроме процесса утверждения учетной записи, имеют доступ к представлению «ApprovedUsers», но не к базовой таблице.

0 голосов
/ 22 марта 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...