我可以在多个表中使用一个定义的主键吗?例如我有一个具有 Item_ID 的项目表,但我也想在 Vehicle 和 Piece 表中写这个 ID 作为主键。这可能吗?因为,我想要形成基表,然后形成子表。车辆有自己的属性。
问问题
834 次
1 回答
1
1. First of all, purpose of Primary key is to uniquely identify a row
of a table.
2. Is it possible that data of a 'column' can uniquely identify a row
of 3 tables?
3. Practically not! Then that means it's not in normalized form(not
atomic)
4. One primary key of a table can not be referenced as primary key of
another table and it can be of foreign key. That is how it's
designed.
实际例子:
关系表的主键唯一标识表中的每条记录。它可以是保证唯一的普通属性(例如表中的社会保险号,每人不超过一条记录),也可以由 DBMS 生成(例如全局唯一标识符,或 GUID,在 Microsoft SQL Server 中)。主键可以由单个属性或多个属性组合组成。假设我们有一个包含三个表的学生记录数据库。第一个表 STUDENTS 包含大学中每个学生的记录。第二个表 CLASSES 包含所提供的每个课程的记录。第三个表 ENROLLMENT 包含学生注册记录(例如,每条记录代表一个学生注册一门课程)。每个学生会有多个记录(代表学生注册的所有课程),每个班级会话会有多个记录(代表该班级注册的所有学生)。对于 STUDENTS 表中的主键,学生的唯一学生 ID 号是一个不错的选择。
希望这可以帮助
于 2012-12-26T12:04:52.883 回答