作业帮 > 综合 > 作业

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

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/29 00:20:23
用SQL SERVER2005构建一个同义词数据库
简单来说就是...例如:好看、美丽、漂亮 这3个词是一组同义词,当我输入其中任何一个词时,能够搜索到并显示出另外2个同义词.请问各位高手这应该怎么实现?
如果是设计表,可以这样设计
用一个表记录词
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)--條件為"好看"
再答: --T1 CREATE TABLE Word(ID BIGINT IDENTITY(1,1) CONSTRAINT PK_Word PRIMARY KEY,VALUE NVARCHAR(200)) GO --T2 CREATE TABLE SynonymGroup(ID INT IDENTITY(1,1) CONSTRAINT PK_SynonymGroup PRIMARY KEY,NAME NVARCHAR(50)) go --T3 CREATE TABLE SynonymWord( ID BIGINT IDENTITY(1,1) CONSTRAINT PK_SynonymWord PRIMARY KEY, SynonymGroupID INT CONSTRAINT FK_SynonymWord_SynonymGroupID FOREIGN KEY REFERENCES SynonymGroup(ID), WordID BIGINT CONSTRAINT FK_SynonymWord_WordID FOREIGN KEY REFERENCES Word(ID) ) GO 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)--條件為"好看"