我应该引用字段ID还是将实际数据放在同一行?

时间:2011-07-06 04:22:58

标签: mysql sql database database-design

我有两个表,meetings_tableitems_table

items_table有三列:

id
item
description

meetings_table有两列:

first_party
second_party

我想展示双方的名字以及他们正在讨论的项目。我应该在引用meetings_table中项目ID的items_table添加另一列,然后从那里提取项目的名称和说明吗?或者我应该向meetings_table,项目和说明添加两列,然后只运行一个查询?哪个主要效率最好?

2 个答案:

答案 0 :(得分:1)

您应该只引用该项目的ID。这样,如果您需要更新有关该项目的任何内容,您只需在一个位置执行此操作,它将使用该数据传播到所有查询。您几乎不想在数据库中存储两次数据。每隔一段时间你就会遇到非标准化数据可以接受的情况,但这是例外,而不是规则。

答案 1 :(得分:1)

最好的办法是为每个项目设置id,然后将id添加到meetings_table,然后从那里查询

 SELECT * FROM meetings_table a, items_table b WHERE a.item_id=b.item_id

这会使itemmeetings彼此独立,同时也可以节省空间。