sql - 一对一关系还是一对多关系?

标签 sql mysql sql-server database database-design

也许今天早上我需要更多的咖啡,但是这里...

我有一个非常简单的库存系统。现在我有两个表:Items 和 Inventory。

项目
编号
标题
发布年份

库存
编号
ItemId(项目的外键)
数量
现有数量

每个项目都有一个库存,每个库存属于一个项目。两者之间的关系是一对一的。但是,当我将其绘制出来时,由于我拥有用于​​ Inventory 的自动递增 ID,到目前为止基于我的设置的关系是一对多的。

现在,我可以通过消除 Inventory 表中的自动递增 id 来实现一对一,但这让我觉得很脏。我总是使用内部 ID 作为主键。

我看到几个选项:

1.) 删除 Inventory 中的自动递增 id 字段并忍受肮脏的感觉。
2.) 保持表格不变。
3.) 将 Items 和 Inventory 合并到一个表中:ItemsInventory。
4.) 还有别的吗?

最佳答案

如果您的关系确实是一对一的,请从 Inventory 表中删除 Id 并使用 ItemId 作为 PK 和 FK。此外,将两个键命名为 ItemId -- 有帮助。

inventory_model

关于sql - 一对一关系还是一对多关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3494384/

相关文章:

c# - SQL Server 代理作业 - SSIS - C# - 尝试删除文件时出现 "Access denied. "

sql - 如何在sql-server中执行多个过程脚本

sql - NHibernate 更新单个属性会更新 sql 中的所有属性

sql - MySQL Group By 并根据年龄进行分组

sql - 在 SQL 中有条件地执行 WHERE 子句

MySQL:字段长度。真的有关系吗?

php - 删除查询sql

mysql - Perl DBI MySQL : Check if column is UNIQUE

c# - 一对一的自关系和 Entity Framework

sql - 将存储过程的结果保存到变量