2011-10-26 38 views
0
SELECT name FROM users WHERE type_a1=1 AND type_a2=5 AND type_b2=8 

这种命令可以在正常情况下找到。不过,假设1特殊情况,其中:一列各种数据组合而不是多个数据列?

  • 每个用户具有260种类型(A0,b0..z0至A9,b9..z9)

  • 每个类型还具有10 从0-9。

在特殊情况下,需要指定260种类型的组合。除了使用上的260列260所选择的,我想用1个单列,因此命令看起来像这样

SELECT name FROM users WHERE type='a04b05c01...y95z96' 

我的问题是双重的:

1)是否有更有效的使用1单这样的列来存储多个数据组合而不是几列? 2)如果(有时)要求是只有选择3种类型的组合(其他257种类型可以是什么),在260列用户类型的情况下,我们的第一个命令的性能如何,在1个单列用户类型的情况下,比较下面的命令?

SELECT name... FROM users WHERE type LIKE %a11% AND type LIKE %a25% AND type LIKE %b281% 

回答

0

你可能想实现这个作为EAV data model当用户将您的实体和类型将是你的属性。

+0

谢谢。我会研究一下。对于实施EAV有不同的看法,所以我不愿意将它应用到我的真实案例中。 –