创建与其他数据库关联的数据库

时间:2011-06-06 22:46:06

标签: php mysql

我有两个数据库:用户和地址。 “用户”存储网站用户,而“地址”存储用户能够生成的许多地址。

我想将数据库相互关联,以便'users'数据库中ID = 1的用户拥有ID为1的'addresses'数据库中的表。我还希望用户(再次使用id = 1)能够生成他喜欢的任意数量的地址,这填补了基本上由他拥有的另一个表。

我有一堆代码,但大多数是我的故障排除,我没有取得多大进展。感谢任何帮助。谢谢。

2 个答案:

答案 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。

  1. 用户
  2. 地址
  3. AddressTypes
  4. User_Address
  5. 
    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的组合。