假设我有两个课程Laptop
和Lcd
。我们现在假设每台笔记本电脑只能有一个Lcd
,而Lcd
只能在一个Laptop
上安装。我们还假设Lcd
可以从一个Laptop
中移除并安装在另一个Laptop
上。这是从Lcd
到{{1}}的一对一关联。
现在的问题是,如何为这种一对一关系设计数据库架构?
非常感谢,
布赖恩
答案 0 :(得分:4)
对此进行建模的最简单方法是将外键放在LCD表中,该表连接回Laptop表。使该列不可为空且唯一。
Laptop
-------------
LaptopId (PK)
...
LCD
-------------
LCDId (PK)
LaptopId (FK, Non-null, Unique constraint)
(同样值得注意的是,相同的方法可以反过来工作 - Laptop
表具有LCD
表的不可为空的唯一外键。
答案 1 :(得分:1)
这可以通过让Laptop表中的外键指向Lcd表的主键来实现。主键通常是自动递增的整数,并确保表中的每一行都是唯一的。
答案 2 :(得分:0)
您只需在laptop
表格中有一列引用其lcd
的主键,而不使用连接表。
您没有指定您正在使用的数据库软件,但在MySQL中,这看起来像这样:
CREATE TABLE laptops (
id INTEGER NOT NULL AUTO_INCREMENT,
lcd_id INTEGER,
PRIMARY KEY (id)
)
CREATE TABLE lcds (
id INTEGER NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id)
)