2011-01-12 138 views
0

有2个表A & B.每个人都说10个colums。 表A有8列作为FK到其他表。表B使用没有任何FK的枚举和std柱。数据库连接/ FK - 基本问题

  • 那么哪个表更快/更好到 使用?
  • ,如果我做任何行动表A, 我想我只需要碰我有关的动作太colunms ,做 没有加入所有的10个FK表 即使我只需要1个FK colunm?
  • ,如果我做 需要在一个FK执行任何操作, 喜欢写,更新或删除值, 我是否需要加入到父 表?
  • 如果我理解正确, EAV模型比扩大 colunm表更好,因为如果我需要 显示从表中然后 两个文本我需要使用内部连接的 colunm表的EAV表我可以在没有连接的情况下使用常规选择吗?

回答

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

  2. Offcourse您只需将表格A加入您需要的表格中。

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

  4. 不,您的EAV需要加入。然而,加入密钥非常快速......这是关系数据库的全部内容,这是他们的强项。

+0

要点4,但我仍然需要与colunm表连接吗?我正在寻找像类别和子类别,如id,category_id,parent_id colunms的表。所以我必须始终加入以获得父权的多个子类别? – BrianJ 2011-01-12 20:44:44