如何最好地搜索多个数据库表以查找用户提供的查询字符串并返回信息。
例如,我有5个表(客户、供应商、采购订单、部件和员工),我希望构建一个单一的统一搜索页面来搜索所有表并返回数据。用户可以将其放入一个查询字符串,如"foo“,我需要搜索customers.companyName、customers.primaryContact、.、Employees.lastName
我怎样才能最有效地做到这一点呢?做5样选择是不实际的。
SELECT *
FROM customers
WHERE companyName LIKE '%foo%' OR primaryContact
假设我有以下类型类
class Silly (t :: * -> *) where
-- details
我希望能够表达以下约束,但我不确定这是否可能。
class (Silly s) => Willy (s t) where
-- details
基本上,我想对类型构造函数施加一个约束,而不是整个类型。这句话能表达吗?我甚至不知道这种约束会被称为什么,所以谷歌一直没有帮助。
编辑:我有一个数据类型
data Reasoner logic atoms a = Reasoner { unReasoner :: MassAssignment atoms -> a