2014-09-27 2 views
0

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

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

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

Второй подход будет иметь временный пул учетных записей. Система будет генерировать новую учетную запись, если нет свободной временной учетной записи или назначить ее из пула по мере необходимости.

Таким образом, в основном это временные счета идентифицируют фактическое лицо и его транзакции в течение ограниченного времени.

Любые идеи для лучших практик в моей ситуации?

ответ

0

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

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

+0

Благодарим вас за ответ. Временные пользователи будут фактическими пользователями в базе данных. У меня будет унаследованная таблица, привязанная к базовой таблице пользователей. Итак, при этом все транзакции будут сохранены, и они никогда не будут удалены так же, как для обычных пользователей. Что можно сделать, это периодическое слияние транзакций с одной временной учетной записью, но даже это не требуется. С точки зрения статистики, я не требую знать, для какой конкретной временной транзакции пользователя была сделана, поскольку я воспринимаю их как одного логического гостевого пользователя. Что вы думаете об этом подходе? – NullReference

+0

Если вы действительно можете просто выбросить их, то мой первый выбор будет удалять период с истекшими записями. –

Смежные вопросы