用SQL SERVER2005构建一个同义词数据库
简单来说就是...例如:好看、美丽、漂亮这3个词是一组同义词,当我输入其中任何一个词时,能够搜索到并显示出另外2个同义词。请问各位高手这应该怎么实现?...
简单来说就是...例如:好看、美丽、漂亮 这3个词是一组同义词,当我输入其中任何一个词时,能够搜索到并显示出另外2个同义词。请问各位高手这应该怎么实现?
展开
展开全部
--创建一个表记录同义词;
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='查询的词' )
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='查询的词' )
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一个词表,包含词ID和词文本
一个意义表,包含意义ID
一个词义表,每条记录放一个意义ID和一个词ID
搜索时从词表检索词文本对应的词ID,然后到词义表检索对应的意义ID,再搜索这个意义ID对应的所有记录
一个意义表,包含意义ID
一个词义表,每条记录放一个意义ID和一个词ID
搜索时从词表检索词文本对应的词ID,然后到词义表检索对应的意义ID,再搜索这个意义ID对应的所有记录
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果是设计表,可以这样设计
用一个表记录词
T1:
ID Name
1 好看
2 美丽
3 漂亮
T2:同义词组
ID
1
2
T3关系统表--1组下的词
T1ID T1ID
1 1
2 1
3 1
用一个表记录词
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)--條件為"好看"
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |