数据库加入/ FK - 基本问题

时间:2011-01-12 19:02:47

标签: database

有2张表A& B.每个人都说10个柱子。 表A有8列作为其他表的FK。表B使用enum和std colunms而没有任何FK。

  • 那么哪个表更快/更好 使用?
  • 如果我对表A做任何动作, 我假设我只需要触摸colunms 我也和这个行动有关 不必加入所有10个FK表 即使我只需要1个FK colunm?
  • 如果我这样做 需要对FK执行任何操作, 比如写,更新或删除一个值, 我需要加入父母吗? 表?
  • 如果我理解正确, EAV模型优于扩展 colunm表因为如果我需要 然后从表中显示两个文本 我需要使用内部联接 用于EAV表的colunm表i 可以使用常规选择而不加入?

1 个答案:

答案 0 :(得分:0)

  1. 仅对少数几个值,如果值的数量没有变化,ENUM可以更快,占用的空间更少。但是,要稍后添加可能的值,您需要更改整个表,这不是好的设计。在大多数情况下,表A是更好的选择。

  2. 当然,您只需将表A加入您需要的表格。

  3. 不,您可以修改包含该值的表,除非您更改PK。然而,您应该设计您的表格,以便不经常需要更改PK - 使用人工PK(自动增量是完美的)。甚至国家也不复存在或改变名称......

  4. 不,对于您的EAV,您需要加入。但是,加入密钥非常快......这就是关系数据库的全部内容,这是它们的优点。