创建表之间的关系

2024-05-01

我的问题特别是关于 sql-server,但任何具有任何数据库背景的人都可以回答

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

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


您所需要做的就是让表 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 可能并不完美,但您应该能够理解。

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建表之间的关系 的相关文章

随机推荐