Как бы вы создали базу данных пользователей с asp.net mvc

Я новичок в asp.net mvc, поэтому, пожалуйста, будьте явными, насколько это возможно.

Вот моя цель:

Я хочу создать простой веб-сайт, на котором пользователи смогут:

  1. Зарегистрируйтесь и войдите
  2. Введите туда контактные данные (телефон, адрес и т.д.)
  3. Посмотреть там контактную информацию
  4. Изменить детали № 3.

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

Мои вопросы заключаются в том, что я просматривал образец asp.net mvc по умолчанию, который появляется при создании нового приложения asp.net mvc.

Я пытаюсь выяснить, должен ли я хранить все контактные данные в базе данных aspnetdb.mdf в существующей таблице или мне следует создавать новые таблицы.

кажется, я мог бы расширить aspnet_Users или aspnet_membership.

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


person leora    schedule 28.06.2009    source источник


Ответы (3)


Вы можете использовать поставщик профиля Asp.net хранить информацию. Перейдите по ссылке, чтобы получить инструкции по использованию встроенного SqlProfileProvider. По умолчанию SqlProfileProvider создает таблицы в файле aspnetdb.mdf, поэтому вы можете хранить все в одном месте. Вы можете получить доступ к поставщику профиля как к свойству в HttpContext.

Изменить: улучшена ссылка для информации о профиле ASP.Net

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

Вы добавляете нужные поля в свой web.config внутри <system.web>. В вашем случае это будет необходимая контактная информация.

<profile>
  <properties>
    <add name="Address" />
    <add name="City" />
    <add name="State" />
    <plus other fields ... />
  </properties>
</profile>

Затем вы можете получить доступ к HttpContext.Profile.Address и т. д., и провайдер позаботится о привязке всего к текущему пользователю.

Добавление и редактирование информации означает отображение формы. Просмотр сведений — это просто отображение всех полей, которые вы сохранили из предыдущей публикации формы.

NerdDinner исходный код и tutorial стоит изучить, если вы совсем новичок в MVC.

person Ben Robbins    schedule 28.06.2009
comment
я не уверен, что вы ответили на мой вопрос. если я расширил сгенерированные таблицы. как мне получить доступ к этим дополнительным полям - person leora; 29.06.2009
comment
Я добавил еще немного информации. Я бы проверил учебник NerdDinner, это отличный материал. - person Ben Robbins; 29.06.2009

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

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

Мне не особенно нравится подход aspnetdb, но это мое личное мнение.

person griegs    schedule 29.06.2009

Этот вопрос стал для меня причиной небольшого внутреннего спора. Я вижу логику в расширении существующего поставщика членства для хранения необходимой дополнительной информации, однако я бы использовал базу данных aspnetdb только для хранения этой информации, если бы это был выбранный путь, поскольку цель этой базы данных, на мой взгляд, состоит в том, чтобы хранить информацию, поврежденную ASP.NET, через API членства

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

person Crippledsmurf    schedule 29.06.2009