用SQL SERVER2005构建一个同义词数据库

简单来说就是...例如:好看、美丽、漂亮这3个词是一组同义词,当我输入其中任何一个词时,能够搜索到并显示出另外2个同义词。请问各位高手这应该怎么实现?... 简单来说就是...例如:好看、美丽、漂亮 这3个词是一组同义词,当我输入其中任何一个词时,能够搜索到并显示出另外2个同义词。请问各位高手这应该怎么实现? 展开
 我来答
百度网友bd0325f
2011-04-20 · TA获得超过373个赞
知道小有建树答主
回答量:298
采纳率:0%
帮助的人:197万
展开全部
--创建一个表记录同义词;
create table 同义词
(id int,
words varchar(50)
)
--把同义词定义为同一个id;
insert into 同义词 values(1,'好看')
insert into 同义词 values(1,'美丽')
insert into 同义词 values(1,'漂亮')
select words from 同义词 where id=(select id from 同义词 where words='查询的词' )
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ai生火
2011-04-20 · TA获得超过5269个赞
知道大有可为答主
回答量:2109
采纳率:50%
帮助的人:1673万
展开全部
一个词表,包含词ID和词文本
一个意义表,包含意义ID
一个词义表,每条记录放一个意义ID和一个词ID
搜索时从词表检索词文本对应的词ID,然后到词义表检索对应的意义ID,再搜索这个意义ID对应的所有记录
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
roy_88
2011-04-20 · TA获得超过3696个赞
知道大有可为答主
回答量:2914
采纳率:100%
帮助的人:2727万
展开全部
如果是设计表,可以这样设计
用一个表记录词
T1:
ID Name
1 好看
2 美丽
3 漂亮
T2:同义词组
ID
1
2
T3关系统表--1组下的词
T1ID T1ID
1 1
2 1
3 1
更多追问追答
追问
由于我的技术比较差...能否请你把源代码也写出来。不胜感激!
追答
--T1
CREATE TABLE Word(ID BIGINT IDENTITY(1,1),VALUE NVARCHAR(200))
GO
--T2
CREATE TABLE SynonymGroup(ID INT IDENTITY(1,1),NAME NVARCHAR(50))
go
--T3
CREATE TABLE SynonymWord(ID BIGINT IDENTITY(1,1),SynonymGroupID INT,WordID BIGINT)
GO
--T1數據
INSERT Word SELECT N'好看'
INSERT Word SELECT N'美丽'
INSERT Word SELECT N'漂亮'

--T2、T3數據控制--由程序程序
GO
DECLARE @SynonymGroupID INT
INSERT SynonymGroup SELECT N'Synonym1'
SET @SynonymGroupID=@@IDENTITY

INSERT SynonymWord SELECT @SynonymGroupID,1
INSERT SynonymWord SELECT @SynonymGroupID,2
INSERT SynonymWord SELECT @SynonymGroupID,3

GO
--查看時這樣用
SELECT
a.*
FROM Word AS a
INNER JOIN SynonymWord AS b ON a.ID=b.WordID
WHERE EXISTS(SELECT 1 FROM Word AS c INNER JOIN SynonymWord AS d ON c.ID=d.WordID AND c.VALUE=N'好看' AND d.SynonymGroupID=b.SynonymGroupID)--條件為"好看"
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式