如何实现搜索2个不同的表格数据? [英] how to implement search for 2 different table data?

查看:105
本文介绍了如何实现搜索2个不同的表格数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用mysql和PHP



我已经使用了MATCH AGAINST子句。

个人桌子。就像我想在商店的餐桌上搜索一样。没问题。



我想要的是能够在单个结果页面中搜索和显示不同表格中的结果。

例如,如果我输入巧克力衣服,我可能会得到4个结果如下:

Shop1结果

/ p>

ShopItem1结果

ShopItem2结果



Shop2结果



当然最相关的结果应该排在第一位。

我有很多问题。设计明智,以及明智的实施方式

<1>我应该改变我的设计吗?我正在考虑创建一个名为搜索结果的单独表格,其中包含来自SHOPS和SHOPPRODUCTS表格的数据。然而这意味着我有一些数据重复。

2)我应该保持我目前的设计吗?如果是这样,那么我怎么能得到搜索结果排序的相关性跨越两个不同的表?我看到rottentomatoes组织他们的搜索结果在不同的组。但是,我们更喜欢搜索结果不受不同类型的限制,特别是当我们有分页时,这将会更加困难地导航UI。

http://www.rottentomatoes.com/search/full_search.php?search=girl a>



或者那实际上是最好的出路?



我希望有人可以给我指导这种事情尤其是如果你有在生成搜索结果的经验,看起来像多个表。



由于需求,我会把表结构放在这里

  CREATE TABLE`shopitems`(
`id` int(10)unsigned NOT NULL auto_increment,
`ShopID` int(10)unsigned NOT NULL,
`ImageID` int(10)unsigned NOT NULL,
`name` varchar(100)NOT NULL,
`description` varchar(255)NOT NULL ,
`pricing` varchar(45)NOT NULL,
`datetime_创建日期时间NOT NULL,
PRIMARY KEY(`id`)
)ENGINE = MyISAM AUTO_INCREMENT = 31 DEFAULT CHARSET = utf8;

/ *表商店的表格结构* /

如果存在商店

CREATE TABLE`stores`(
` id` int(11)NOT NULL auto_increment,
`title` varchar(100)default NULL,
`description`文本,
`关键字`文本,
`url` varchar(255)默认值'',

`owner_id` varchar(255)默认NULL,
`datetime_created `datetime默认NULL,
`created_by` varchar(255)默认NULL,
`datetime_modified` datetime默认NULL,
`modified_by` varchar(255)默认NULL,

`overall_rating_avg` decimal(4,2)默认'0.00',


PRIMARY KEY(`id`),
FULLTEXT KEY`url`(`url`) ,
FULLTEXT KEY`TitleDescFullText`(`keywords`,`title`,`description`,`url`)
)ENGINE = MyISAM AUTO_INCREMENT = 3051 DEFAULT CHARSET = utf8;

我打算搜索shopproducts表的描述和名称列。



但你可以看到它还没有实现。



虽然搜寻店铺已经开始运作。 解决方案

<这里有几条游戏规则,你必须牢记这个问题才能解决这个问题。您可能已经知道这些,但明确说明它们可能有助于确认其他读者。

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆