I’m trying to create 2 tables in Visual Studio server pane and I have a problem creating the foreign keys.
When I’m trying to create them in the relationship page it won’t let me create foreign keys until I make them primary keys.
I don’t understand why I can’t have a different member in my table that it is primary key and a different one a foreign key.
My tables are like this:
Table People:
Primary key: ID int
Name nvarchar
Age int
City nvarchar
Foreign key: AccountNumber int --> when I make him primary key everything works.
Table BankAccount:
Primary key and Foreign Key: AccountNumber int
Money float
ps.
I used some mysql with CMD and I remember that I could do this, but because I don’t have this control in visual studio I’m lost.
UPDATE:
Rup made a good point that i only relize afther answering the qustion he ask me
i just did the realtionship (Foreign Key) for the bank account table and now i got
what i wanted thank you!
Why is BankAccount.AccountNumber a Foreign Key? Are you trying to reference back to the the person who owns it?
If that is the case, BankAccount should be:
And drop the account ID from the people table.
This models the relationship “an Account has 1 and only one owner” and allows the relationship “A person can have many accounts.”
It looks like what you’re trying to do is create a back reference. If you were to choose to do this, then the back reference to the owner should be on People.ID, not on account. — Although this is unnecessary because you can simply query
to get all accounts and their owners.
If you want to establish multiple owners for an account, AND many accounts per user, then you need to establish a third table to implement the many-to-many relationship.
And drop the People.AccountNumber and BankAccount.Owner. This technique is akin to maintaining a list of all accounts and owners which you can query.