我有以下数据库表和一个表示该数据的视图。这些表格是分层的(如果你是这样描述的):-
编辑:我已经用 FAKE 表名称/数据(对于这篇文章)替换了我的 3 个表,因为我在 NDA 下不发布任何关于项目等的内容。所以是的.. 我并没有真正保存这样的人名:)
名字
FirstNameId INT PK NOT NULL IDENTITY
Name VARCHAR(100)
中间名
MiddleNameId INT PK NOT NULL IDENTITY
Name VARCHAR(100) NOT NULL
FirstNameId INT FK NOT NULL
姓氏
SurnameId INT PK NOT NULL IDENTITY
Name VARCHAR(100) NOT NULL
FirstNameId INT FK NOT NULL
因此,名字是父表,其他两个表是子表。
景色看起来...
人名
FirstNameId
FirstName
MiddleNameId
MiddleName
SurnameId
Surname
这是一些示例数据。
FNID FN MNID MN SNID SN
-----------------------------------
1 Joe 1 BlahBlah 1 Blogs
2 Jane - - 1 Blogs
3 Jon - - 2 Skeet
现在问题来了。如何有效地搜索视图上的名称?我本来打算有一个全文搜索/目录,但我不能把它放在一个视图上(或者至少我不能让它使用 GUI 对一个视图工作)。
编辑#2:以下是一些示例搜索查询:-
exec uspSearchForPeople 'joe blogs' (1 result)
exec uspSearchForPeople 'joe' (1 result)
exec uspSearchForPeople 'blogs' (2 results)
exec uspSearchForPeople 'jon skeet' (1 result)
exec uspSearchForPeople 'skeet' (1 result)
我应该用全名生成一个新表吗?那看起来怎么样?
请帮忙!