Расширение членства в ASP.NET, PK == FK == ОК? - PullRequest
2 голосов
/ 29 июля 2009

Я использую SQLMembershipProvider и хочу добавить дополнительную информацию о пользователях. Это лучший способ сделать это, чтобы создать новую БД и сделать запись для каждого нового пользователя по мере его создания? Если да, есть ли причина не использовать значение UserID SQLMembershipProvider в качестве PK в таблице пользователей в моей новой БД?

Или есть ли веские причины для создания нового UserID в моей новой БД и использования SQLMembershipProvider UserID в качестве FK?

Ответы [ 3 ]

2 голосов
/ 29 июля 2009

Я не могу придумать причину, по которой это не сработает, или почему вы не должны делать это таким образом (userid as PK)

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

1 голос
/ 29 июля 2009

Если вы собираетесь переписывать провайдера членства, я бы переключил все столбцы PK на BITINT с GUID. Я бы сделал это по двум причинам; Во-первых, с последовательными числами работать и понимать гораздо проще, а во-вторых, производительность BIGINT вместо идентификаторов GUID значительно повышается. Я также просто использовал бы свой собственный столбец идентификаторов, который можно использовать для сопоставления других таблиц в приложении, и удалил таблицу, поставляемую по умолчанию в поставщике членства sql. Для этого вам нужно будет предоставить код для каждой функции в провайдере, это немалая задача.

0 голосов
/ 29 июля 2009

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

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

Это решение в настоящее время используется на нескольких сайтах и ​​хорошо работает.

...