2011-05-13 71 views
0

我有一个传统的mysql数据库,并有这张表有几个全文索引列。在这些列的每一列中,所存储的数据都以空格分隔。这就像mysql数据库设计全文问题

token1 token2 token3 

与全文索引功能,代码不匹配为:

SELECT ... FROM mytable WHERE MATCH(column1) AGAINST('token1' IN BOOLEAN MODE) AND MATCH(column2) AGAINST('token2' IN BOOLEAN MODE) AND MATCH(column3) AGAINST('token3' IN BOOLEAN MODE) 

现在我想这个特殊的设计refacter融入了更多时尚的标准化。另一个原因是我想用innoDB表而不是myism表。该过程似乎将每列转换为一个属性表,然后使用另一个连接表来标记属性表与原始表之间的一对多关系。这可能会使SQL复杂化很多。我想知道是否有更好的解决方案。

+0

这是规范化的基本要求,即每列必须有一个值不是多个...,所以需要这样做.. – diEcho 2011-05-13 03:59:23

回答

0

IMO你应该在你的表格之间创建一个多关系。这样你将获得更好的性能和更多的灵活性。