Плохая идея изменить автоматически сгенерированную базу данных asp.net mvc framework? - PullRequest
0 голосов
/ 22 января 2009

Является ли плохой идеей (и если почему?) Добавить столбец к автоматически сгенерированному asp.net (ASPNETDB.MDF, visual studio 2008, mvc Framework) «Роли пользователя - база данных»?

(например, я хочу добавить столбцы RealName и LastName в таблицу aspnet_Users в базе данных.)

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

Ответы [ 4 ]

1 голос
/ 22 января 2009

Используются две схемы генерации (из Pragmatic Programmer ):

  • Те, которые используются один раз для генерации кода
  • Те, которые все время используются для синхронизации некоторого кода

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

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

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

0 голосов
/ 22 января 2009

Во-первых, эти таблицы на самом деле не являются чем-то конкретным для MVC: они создаются / по умолчанию AspNetSqlMembershipProvider . (Также относится к другим видам приложений ASP.NET.)

Возможно, вы могли бы безопасно добавлять новые столбцы, но поставщик членства не мог бы их видеть. Он предоставляет механизм своего профиля для хранения дополнительной информации (которая сериализуется и сохраняется в таблице aspnet_Profiles).

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

0 голосов
/ 22 января 2009

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

0 голосов
/ 22 января 2009

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

Я слышал, что это неплохое решение: http://www.asp.net/downloads/sandbox/table-profile-provider-samples/

...