gpt4 book ai didi

sql-server - 创建表之间的关系

转载 作者:太空狗 更新时间:2023-10-30 02:01:07 26 4
gpt4 key购买 nike

我的问题专门针对 sql-server,但任何具有任何数据库背景的人都可以回答

如果我希望表 A 与表 B 在某一列上具有 1:1 的关系,我是否应该以某种方式修改 CREATE TABLE 语句以识别这种关系,或者这是根本没有完成的事情(而是它是由逻辑处理)?

编辑
我的问题的第二部分是:将其嵌入到代码中有什么意义?为什么不在选择/更新时逻辑地处理它?<​​/p>

最佳答案

您需要做的就是将表 A 中的列作为表 B 的主键的外键:

create table TableB (
Id int primary key identity(1,1),
Name varchar(255))

create table TableA (
Id int primary key identity(1,1),
Name varchar(255),
TableBRelation int unique,
foreign key (TableBRelation) references TableB (Id))

SQL 可能并不完美,但您应该能够理解。

至于为什么要在数据库中而不只是应用程序逻辑中执行此操作:

  • 其他数据库或开发人员可能会尝试访问您的数据库。您是否希望他们能够创建可能破坏您的应用程序的无效数据?不,这是参照完整性的要点之一。

  • 在某些时候,有人将不得不维护您的应用程序。在数据库级别定义您的键将清楚地识别您的数据之间的关系,而不是要求开发人员深入研究您的应用程序代码。

关于sql-server - 创建表之间的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3892599/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com