asp. net 관련 글 실현 방법 1 / 2 페이지
장면: 특정한 시스템 을 개발 하 는 과정 에서 저 는 '관련 글' 기능 을 실현 해 야 합 니 다. 모든 글 은 '키워드' 를 정의 할 수 있 습 니 다. 모든 글 은 이 '키워드' 에 의 해 다른 글 이 그것 과 관련 이 있 는 지 확인 하고 키 워드 를 정의 하지 않 으 면 전문 검색 을 통 해 이 루어 져 야 할 수도 있 습 니 다. 이것 은 다른 화제 입 니 다.
사고: 키 워드 를 ',' 구분자 기호 로 여러 개 를 정의 할 수 있 도록 허용 하기 때문에 난이 도 를 높 였 다.사 고 를 통 해 글 을 저장 할 때 키 워드 를 분해 하고 키 워드 를 만들어 모든 키 워드 를 해당 하 는 글 ID 에 따라 저장 할 수 있 습 니 다.그리고 순수한 SQL 저장 프로 세 스 를 사용 하기 로 결 정 했 습 니 다. 이러한 중복 작업 은 일반적인 함수 보 다 는 미리 컴 파일 된 저장 프로 세 스 를 사용 하 는 것 이 더 빨 라 집 니 다. 이렇게 하면 모든 처 리 를 ㎡ oSQL Server 에 남 길 수 있 습 니 다.
솔 루 션 1: 기 존 문장 표 (Details) 를 바탕 으로 관련 문장 표 (Related Details) 를 만 드 는 것 이 우선 입 니 다. 필드 는 ItemID (메 인 키), DetailID (문장 ID), 키워드 (키워드) 를 포함 합 니 다.다음은 주요 저장 과정 입 니 다.
1, UpdateRelated 세부 사항: 업데이트 관련 글 키워드
CREATE procedure dbo.UpdateRelatedDetails
@DetailID INT,
@Keywords NVARCHAR(500)
AS
EXEC DeleteRelatedDetails @DetailID
DECLARE @I INT
DECLARE @Keyword NVARCHAR(50)
SET @Keywords=REPLACE(@Keywords,',', ',')
SET @Keywords=REPLACE(@Keywords,';', ',')
SET @Keywords=RTRIM(LTRIM(@Keywords))
SET @I=CHARINDEX(',', @Keywords)
WHILE @I>=1
BEGIN
SET @Keyword=LEFT(@Keywords, @I-1)
INSERT INTO DetailKeywords (DetailID, Keyword) VALUES(@DetailID, @Keyword)
SET @Keywords=SUBSTRING(@Keywords, @I+1,LEN(@Keywords)-@I)
SET @I=CHARINDEX(',', @Keywords)
END
IF @Keywords<>''
INSERT INTO DetailKeywords (DetailID, Keyword) VALUES(@DetailID, @Keywords)
GO
2, Delete Related Details: 기 존 관련 글 키워드 삭제
CREATE PROCEDURE dbo.DeleteRelatedDetails
@DetailID INT
AS
DELETE FROM DetailKeywords WHERE DetailID=@DetailID
GO
3. GetRelated Details: 관련 글 을 얻 는데 그 중에서 Details 가 바로 문장 표 이다.
CREATE procedure dbo.GetRelatedDetails
@DetailID INT
AS
DECLARE @Keywords NVARCHAR(500)
SELECT @Keywords=Keywords FROM Details WHERE ItemID=@DetailID
IF @Keywords<>''
BEGIN
SELECT DISTINCT d.ItemID, d.Subject, d.ItemFile
FROM Details d RIGHT OUTER JOIN DetailKeywords k ON k.DetailID=d.ItemID WHERE d.ItemID <> @DetailID AND @Keywords LIKE '%'+k.Keyword+'%'
END
GO
12 다음 페이지 전문 읽 기
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.