views:

297

answers:

3

Hello,

I'm using ASP.Net membership to secure my site and I have a question about how to store extra user information. By googling and reading other questions I think the 3 accepted approaches to storing additional data

  1. Profile framework - generally regarded as too restricting
  2. Custom Profile provider - a little bigger than I want to attempt at the moment
  3. Using another table with user information - the choice I'm following

I've created a new table in addition to the ASP.Net membership tables named User_Information that has a one-to-one foreign key to aspnet_Users. When I create a new table to store information linked to a user (e.g. comments, votes, etc) should I set the foreign key to point to aspnet_User or my User_information table?

thanks

A: 

I pick aspnet_User table. It is, after all, considered to be the "primary" table for user info, no?

Al W
A: 

It depends on the nature of your queries.

The Membership provider will give you easy access to the user ID column from the aspnet_Users table. It will take an extra query to get the ID from your table.

However, if most of your queries require joining your User_Information table anyway, then it may not really matter.

RickNZ
A: 

I use the same way as you did. I have a weak-reference without any physical relationship between those two tables. It works perfectly fine for me. To manage dependencies you can wrap the database operations within a transactions for both the tables.

I recommend not to create any foreign key and continue with this design.

this. __curious_geek