【发布时间】:2011-07-04 23:43:58
【问题描述】:
我曾使用过相当多的数据库(MySQL、Oracle),但通常只使用 DML,因为这些系统以前是经过设计的。
我作为唯一的开发人员从事一个项目,负责应用程序开发和 DBA;后者当然证明问题更大。
无论如何 - 我需要刷新外键约束,以及它们在模型中的逻辑位置。鉴于以下情况:
dbc_user
.user_id INT, Primary Key, Auto Increment
// arbitrary columns
dbc_user_profile
.user_id INT, Primary Key
// arbitrary columns
这些表是 1 对 1 关系。我知道,鉴于这种关系,它们的列可以合并到一个表中,但让我们将它们分开。那么外键属于dbc_user_profile表吗?
多对多呢?
dbc_user
.user_id INT, Primary Key, Auto Increment
dbc_city
.city_id INT, Primary Key, Auto Increment
dbc_user_city
.city_id INT, Primary Key
.user_id INT, Primary Key
哪些表是引用/被引用的表?
由于某种原因,我似乎找不到一个快速而肮脏的教程来解释这些关系。
所以两部分的问题;
- 有人可以为半精明的人推荐一个关于外键的 DDL 细节的教程吗?或;
- 谁能简要介绍一下1-to-1、1-to-m和m-to-m关系和 FK 参考?
【问题讨论】:
标签: database-design foreign-keys foreign-key-relationship ddl