小编jsp*_*407的帖子

有一个只包含外键的表是否“可以”?

“好的”,我的意思是“它对整个数据库设计没有任何不良影响”。

  • 例如,它会导致插入问题吗?
  • 或者以后我在表中添加字段时会出现问题吗?

例如,我有一个包含三个表的简单数据库:

  • 客户(客户 ID,客户名称)
  • 产品(产品ID,产品名称)
  • 订单(订单 ID、客户 ID、产品 ID)

很明显,Order 表只是两个表(Customer 和 Product)之间的映射。表Order 中的OrderID 没有用,它只是用来标识每一行。

如果我不想识别每一行,因为例如我们有规则:

用户不能两次订购相同的产品。

当然,这与现实相去甚远,但这只是一个例子。

底线问题是,在上面给出的示例中,是否可以删除表 Order 中的 OrderID 并将表 Order 中的 ProductID 和 CustomerID 设置为复合主键?在这种情况下,Order 表仅包含外键并设置为复合主键。

作为初学者,我搜索了很多数据库设计概念,发现了一些术语,如“主键”、“复合主键”、“数据库规范化”等,但不知道在实践中会发生什么,所以我决定在这里问。我只是担心它对未来的影响,因为我不知道是否存在特定情况下它会成为劣势。

database-design

8
推荐指数
1
解决办法
2万
查看次数

标签 统计

database-design ×1