我有两个数据库:用户和地址。 “用户”存储网站用户,而“地址”存储用户能够生成的许多地址。
我想将数据库相互关联,以便'users'数据库中ID = 1的用户拥有ID为1的'addresses'数据库中的表。我还希望用户(再次使用id = 1)能够生成他喜欢的任意数量的地址,这填补了基本上由他拥有的另一个表。
我有一堆代码,但大多数是我的故障排除,我没有取得多大进展。感谢任何帮助。谢谢。
答案 0 :(得分:1)
你很接近,但是你不想在每个表中使用相同的ID,而是希望以另一种方式连接它们。如果用户可以拥有多个地址,您可能需要在地址表中使用user_id列。然后,如果用户ID为1,则可以使用以下查询连接两者:
SELECT * FROM addresses WHERE user_id = 1;
本文中有关于此类内容的一些内容:http://dev.mysql.com/tech-resources/articles/intro-to-normalization.html
答案 1 :(得分:0)
您不需要多个数据库,只需要一个。
1个包含2个表的数据库。实际上,3桌。也许4。
User
-------------
UserID int (PK)
User_Last_Name
User_First_Name
Address
---------------
AddressID int (PK)
AddressTypeID int (FK: AddressTypes)
etc.
Address_Types
---------------
AddressTypeID int (PK)
AddressType nvarchar(50)
User_Address
---------------
UserID (FK: User)
AddressID (FK: Address)
AddressTypeID (FK: AddressTypes)
User_Address的PK将是所有三个ID的组合。