首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将逻辑数据模型转换为SQL表设计

将逻辑数据模型转换为SQL表设计
EN

Stack Overflow用户
提问于 2012-04-07 00:45:48
回答 1查看 375关注 0票数 2

在我最近制作的LDM中,我有一个实体,它具有以下结构:

代码语言:javascript
运行
复制
Building_ID (Primary Key, Foreign Key),
Plant_ID (Foreign Key),
Build_Year (Primary Key),
Size

我需要使用此设计在SQL数据库中创建一个表。我遇到的问题是如何处理这里的主键?SQL表可以有多个主键吗?如果这个问题的答案是肯定的,那么哪一列应该作为唯一索引?我应该创建一个新列作为唯一索引标识符吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-07 01:05:06

任何关系数据库系统(SQL Server、Oracle、Firebird、IBM、DB2等)的任何SQL表我知道只能有一个主键--毕竟,它是主键--只能有一个。

但是,一个主键可以由多个列组成(称为“复合主键”)。这有一些缺点,比如:来自其他表的所有外键约束也必须指定复合PK中的所有列,从而使得连接表有点痛苦(因为您需要为JOIN中的键中包含的所有列指定所有相等约束)。

除了主键之外,您还可以有多个替代键-也可以唯一标识行的其他列。这些都是很好的候选索引,如果它们可以帮助你加速对表的访问(但不要过度索引你的表!)少即是多)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10046470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档