asp. net 관련 글 실현 방법 1 / 2 페이지

앞에서 말 했 듯 이 여러분 은 놀 라 실 것 입 니 다. 왜 영감의 원천 에서 SQL 을 토론 합 니까?아마도 이렇게 말 해 야 할 것 같다. 업무 시스템 을 하 는 것 은 SQL 과 관 계 를 맺 지 않 는 것 이 비교적 어 려 운 것 같다.
장면: 특정한 시스템 을 개발 하 는 과정 에서 저 는 '관련 글' 기능 을 실현 해 야 합 니 다. 모든 글 은 '키워드' 를 정의 할 수 있 습 니 다. 모든 글 은 이 '키워드' 에 의 해 다른 글 이 그것 과 관련 이 있 는 지 확인 하고 키 워드 를 정의 하지 않 으 면 전문 검색 을 통 해 이 루어 져 야 할 수도 있 습 니 다. 이것 은 다른 화제 입 니 다.
사고: 키 워드 를 ',' 구분자 기호 로 여러 개 를 정의 할 수 있 도록 허용 하기 때문에 난이 도 를 높 였 다.사 고 를 통 해 글 을 저장 할 때 키 워드 를 분해 하고 키 워드 를 만들어 모든 키 워드 를 해당 하 는 글 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 다음 페이지 전문 읽 기

좋은 웹페이지 즐겨찾기