用户位置数据库设计solutuin

时间:2015-08-22 12:11:03

标签: mysql database database-design orm

我对如何设计关于关系的数据库感到困惑。

  1. 我的用户可能有很多位置。 (跟踪用户位置)
  2. 我有可以有很多地方的地方。 (地点可以是酒吧,餐厅,医院......放置许多地点 - (例如,麦当劳是一个小屋,遍布世界各地)
  3. 我的困惑是用户 - >之间的关系。位置和地点 - >地点。我不确定我的想法是否正确。

    • 用户可以拥有多个位置,但位置可以包含我的用户,餐馆。
    • 地点可以与多个地点相关,但地点可以有多个地方(例如,同一建筑物中的两个酒吧具有相同的,lat,lng)。

    设计具有ManyToMany关系的数据库(用户,位置)和(地点,位置)是否正确?

1 个答案:

答案 0 :(得分:0)

对于多对多关系,您应该在中间有一个"表,它只引用相关表的主键。在您的情况下,您有一个USERSLOCATIONS的表格:

USERS:
pkUsers, userName, userPhone ... etc.

LOCATIONS:
pkLocation, street, city ... etc.

其中pkUserspkLocation是主要的自动增量ID

中间的表应该是USERLOCATIONS,有两个字段:

USERLOCATIONS
fkUsers, fkLocations

(其中' fk'代表外键)

现在,当链接位置和用户时,只需将其主键添加到表中即可。

您可以对RESTAURANTS或任何其他多对多的表执行相同操作。