sql - SQL 中的业务逻辑关系

标签 sql sql-server rdbms

谁能告诉我如何在 SQL(服务器)中的表之间建立 1 到 0..11 到 1..* 关系?

非常感谢。

最佳答案

1 到 1..*

创建从父表到子表主键(查找表)的外键。

CREATE TABLE  A
(
   id int NOT NULL IDENTITY(1,1) PRIMARY KEY,
   Somecolumn int,
   SomeOtherColumn Varchar(50),
   B_id int CONSTRAINT FOREIGN KEY REFERENCES B(id),
   -- ...other columns
)

CREATE TABLE  B
(
   id int NOT NULL IDENTITY(1,1) PRIMARY KEY,
   Name Varchar(50)
)

1 到 0..1

创建一个表,其主键也定义为父表的外键

CREATE TABLE  [Master]
(
   id int NOT NULL IDENTITY(1,1) PRIMARY KEY,
   Somecolumn int,
   SomeOtherColumn Varchar(50),
   -- ...other columns
)

CREATE TABLE [Child]
(
   id int NOT NULL PRIMARY KEY,
   OtherColumn Varchar(50),
)

ALTER TABLE Child
   ADD  CONSTRAINT FK_Master FOREIGN KEY (id) REFERENCES Master(id)

关于sql - SQL 中的业务逻辑关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6137262/

相关文章:

mysql - 使用基于动态字段的 DATE_SUB()

sql - SQL 中 IF 的正确用法

php - 没有从数据库返回属性?

sql - 如何为每笔具有多次插入的交易获取唯一 ID

sql-server - 为什么我这里不为空?

mysql - 什么情况下外键不能为空?

mysql - 变量未将正确的数据或任何数据传递到查询中

sql-server - Python - pyodbc 使用参数名称调用存储过程

mysql - MySQL 是否允许使用直接连接的语法?

mysql - 需要对索引进行一些说明(WHERE、JOIN)