中国开发网: 论坛: 程序员情感CBD: 贴子 241783
hmaik: 技术贴-关键词索引的数据结构设计
需求:需要标记一批词在一组素材中的位置(每个)及频次(对每篇素材),在标记的过程中用户会不断的添加词和素材
数据库是SQL Server 2000

记录词在素材中的频次表
CREATE TABLE [dbo].[HouseMedicine_Word_Number] (
[ID] [bigint] IDENTITY (1, 1) NOT NULL ,
[ArticleID] [bigint] NULL ,
[WordID] [bigint] NULL ,
[Number] [bigint] NULL
) ON [PRIMARY]
记录词在素材中的位置表
CREATE TABLE [dbo].[HouseMedicine_Word_Place] (
[ID] [bigint] IDENTITY (1, 1) NOT NULL ,
[ArticleID] [int] NULL ,
[WordID] [int] NULL ,
[Place] [int] NULL ,
[inDateTime] [datetime] NULL
) ON [PRIMARY]

Number表中记录了词在每个素材中出现的次数,即使是0

标记程序提取素材的语句
select ID, Content from HouseMedicine where ID >= 9860 AND ID<=15021
标记程序提取需要处理的词采用如下语句
SELECT TOP 10 WordID, KeyWord FROM thesaurus WHERE (IsKey = 1) AND (WordID>420000) AND (WordID NOT IN (SELECT

wordid FROM HouseMedicine_Word_Number where articleid>=9860 AND articleid<=15021 GROUP BY wordid))

这样的设计有没有问题?是否有更好的办法?

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录