MySQL关系

MySQL关系,mysql,database-design,foreign-keys,Mysql,Database Design,Foreign Keys,我正在试图弄清楚如何构造这个数据库。我以前使用过苹果的核心数据,现在我正在做一个需要MySQL的项目。我是MySQL的新手,所以请对我放松点。:) 对于本例,假设我有三个表,用户、设备、和位置。把它画出来,一个位置可以有许多设备s,但是设备只能有一个位置;每个用户都有它的主键,UserID,我需要使用它来获取正确的信息 那么我如何在这里建立这样的关系呢?我听说过创建索引和外键,但我不确定它们到底是如何工作的 最后,我需要做的是能够访问用户的特定表,并查看与该用户相关的所有位置。我还需要能够在某个

我正在试图弄清楚如何构造这个数据库。我以前使用过苹果的核心数据,现在我正在做一个需要MySQL的项目。我是MySQL的新手,所以请对我放松点。:)

对于本例,假设我有三个表,
用户
设备
、和
位置
。把它画出来,一个
位置
可以有许多
设备
s,但是
设备
只能有一个
位置
;每个
用户
都有它的主键,
UserID
,我需要使用它来获取正确的信息

那么我如何在这里建立这样的关系呢?我听说过创建索引和外键,但我不确定它们到底是如何工作的

最后,我需要做的是能够访问
用户
的特定表,并查看与该
用户
相关的所有
位置。我还需要能够在某个
位置为某个
用户添加
设备


再一次,请原谅我,因为我正试图把我的头绕在MySQL上。我正在使用HeidiSQL进行数据库编辑。

用户-设备是一种多对多关系,因此您需要引入一个中间表来解决这种关系。该表只包含两个外键,一个引用用户表,另一个引用设备。可以使用设备表中指向位置表的简单外键来处理设备位置


哦,对不起!每个
设备
只能有一个
用户
,但一个
用户
可以有多个
设备
s和多个
位置
s。每个
设备
只能有一个
位置
@James:请参见我编辑的答案中的图表。
设备
表将有两个外键,一个指向
用户
,另一个指向
位置