什么是正确的mysql(关系)数据库设计结构

时间:2011-10-02 17:27:03

标签: mysql relational-database normalization

我的数据库中有一个名为Resource的表。这有关于资源的常见信息(资源可以是文章,静态网络链接,YouTube视频或任何其他类型)。

我的例子:

表:资源

primary key - id,
column - type,
column - title,
column - description,
column - created_on,
column - updated_on

表:resource_video

primary key - id,
column - youtube_id (spose this could be the primary key, but not relevant in the question).
column - ...

表:resource_weblink

primary key - id,
column - url
column - ...

基本上resource表包含通用(属于所有资源),列,然后表设置为保存resource_type特定数据。在resourceresource_type之间创建关系的最佳(规范化)方式是什么。

我的第一直觉是它应该是resource_idresource_video表中具有resource_weblink外键的两个表之间的一对一识别关系,或者是否存在处理这种情况的更好方法是什么?

1 个答案:

答案 0 :(得分:1)

我会使每个resource_*表的主键对id的{​​{1}}列具有外键约束。每个资源子类型不需要单独的resource。有关如何执行此操作的示例,请参阅this thread。(在接受的答案中查看SupportSystem层次结构)。