mysql - 引用表和引用表

标签 mysql sql database-design foreign-keys

我试图理解关系,自然而然就会出现问题。

MySQL Workbench screenshot

referencing table 是什么意思,referenced table 是什么意思?在上面的例子中,应该引用哪一个,引用哪一个? 让我们说 settlements 表是一个子表(没有国家/地区就不能存在结算)。这个子表应该被引用还是被引用?

这么小的问题我宁愿不开新题: Mandatory 复选框是什么意思?这是否意味着结算表是必需的,或者 country_id 是必需的?还是别的什么?

最佳答案

在 PostgreSQL 文档中找到了一个非常好的解释。

假设您有我们已经使用过多次的产品表:

CREATE TABLE products (
    product_no integer PRIMARY KEY,
    name text,
    price numeric
);

我们还假设您有一个存储这些产品订单的表格。我们要确保订单表只包含实际存在的产品订单。所以我们在orders表中定义了一个外键约束来引用products表:

CREATE TABLE orders (
    order_id integer PRIMARY KEY,
    product_no integer REFERENCES products (product_no),
    quantity integer
);

现在不可能创建带有 product_no 条目但未出现在 products 表中的订单。

我们说在这种情况下,订单表是引用表,产品表是引用表。同样,也有引用列和被引用列。

关于mysql - 引用表和引用表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8095588/

相关文章:

php - 从 mysql 获取 - laravel

php - 无法将本地 WordPress 连接到远程 MySQL 服务器

mysql - 查询以获取列的唯一值和其他列的重复值

sql - 相当于 GO 的 T-SQL

mysql - 为了授予我错误 1064 (42000)

sql - SQLITE3 中的跨表更新

mysql - 单表层次结构的性能问题

mysql - 学习管理的数据库设计

mysql - SQL 查询将实体的子实体放入与父实体相同的行

database-design - 为什么使用多列作为主键(复合主键)