Датамодель для временных пользователей форума

Я создал форум, но теперь обнаружил, что для создания большего трафика мне нужно разрешить анонимным пользователям добавлять сообщения.

Идея состоит в том, что пользователь, у которого нет учетной записи, может написать сообщение и заполнить следующие поля (как вы можете с помощью stackoverflow):

[Имя пользователя][Электронная почта][Сообщение]

Модель данных выглядит примерно так (немного упрощенно):

ForumThread/ForumPost: [Id][CreatedDate][Title][Message][UserId]...

User: [Name][Email][CreatedDate][Address][City]...

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

Есть ли третий вариант, который я забыл?


person Dofs    schedule 22.07.2011    source источник


Ответы (2)


Добавьте свойство Роль к Пользователю и установите Анонимные и Зарегистрированные роли. Оставьте нулевыми свойства, которые не имеют отношения к анонимным пользователям. Хотя лично я бы просто рефакторил на подтипы.

person BobTurbo    schedule 22.07.2011
comment
На самом деле у меня уже есть свойство роли, я забыл об этой опции! Спасибо. - person Dofs; 22.07.2011

Создайте пользователя в таблице «Пользователи», который является «анонимным» пользователем, и делайте анонимные сообщения под этим идентификатором пользователя.

person Paul Sonier    schedule 22.07.2011
comment
Извините, я недостаточно хорошо объяснил. Аноним должен по-прежнему заполнять имя пользователя и адрес электронной почты при написании сообщения (например, в SO). Я обновил вопрос с более подробной информацией. - person Dofs; 22.07.2011