How to combine using Membership API with own application related data?

The first is the simpliest approach. Add the GUID of the user as a foreignkey in the related tables (f.e. Ordered_by). I don’t see where it breaks separating concerns. If you want to keep the order-record in database, you also have to keep the user who has ordered, that makes perfectly sense.

I have used option 4 successfully in my current application. I’ve created a table aspnet_UserID with idUser int as primary-key and fiUser(the GUID of the aspnet_Users) as foreign-key. Here is the model:

Data-Model

(Note: User is the standard aspnet_Users table created via aspnet_regsql.exe and aspnet_UserId is my custom table that maps every Guid with my int-ID)

Now i’m storing only my idUser as FK in all related tables (like in your Order-Table). That has the advantage of less storage and more readable UserID’s(i could never remember a GUID). Maybe it’s somewhat more separated with this “wrapper-table” but that was not my main intention.

You can change the delete-rule on your foreignkeys if you want to control the behavior. Set it to Cascade if you f.e. want to delete all orders that were ordered by the user you’re deleting or set it to no Action if you want to keep this order.

I can’t suggest any alternatives for the Profile question because you haven’t mentioned what you mean with “need to store and access user profile data in more flexible manner then the Profile provider supports”.

Leave a Comment