2012-03-08 1 views
3

저는 웹 사이트의 컨텐츠 관리 시스템을 개발 중입니다. 나는 큰 html 콘텐츠를 데이터베이스에 저장하는 방법에 관한 문제에 직면하고있다. 저장 프로 시저 (Stored Procedure)는 매개 변수를 8000 자로 제한하며이 길이보다 더 많은 내용을 허용하지 않습니다. 그래서 어떻게 데이터베이스에 내 콘텐츠를 저장할 수 있습니다.큰 html 콘텐츠를 데이터베이스에 저장하는 방법은 무엇입니까? CMS 개발

또는 작업을 수행하는 다른 더 좋은 방법, html 콘텐츠를 저장할 위치가 있습니다. 또한 이미지 (HTML 내부)를 저장하는 방법이나 링크, 구현 시나리오는 무엇입니까?

많은 CMS 시스템이 실행 중이며이 기능을 구현 한 방법은 무엇입니까?

이 요구 사항을 처리하는 방법을 더 잘 제안하십시오. 내가 사용하고

도구 : C# .NET을 SQL Server 2005의 Asp.net 2.0

답변

5

VARCHAR(MAX) 데이터 유형을 사용하지 왜, SQL 끊다 2005를 사용하는 경우?

VARCHAR(MAX)NVARCHAR(MAX) 이전 TEXTNTEXT에 저장할 수있는 데이터의 동일한 금액 (2 기가 바이트) 저장할 수 있지만 훨씬 더 유연 TEXT/NTEXT보다. 이들은 다른 데이터 유형에 사용되는 것과 동일한 유형의 데이터 페이지에 저장됩니다.

이미지와 관련하여 내 권장 사항은 파일 시스템에 저장하고 단순히이를 가리키는 일반 img 태그를 사용하는 것입니다.

이것은 CMSes의 경우 나중에 템플릿 어딘가에 임베드 될 테이블에 기사 내용을 저장하기 위해 일반적으로 발생합니다. MongoDB와 같은 문서 데이터베이스가 이러한 유형의 응용 프로그램에 대한 인기가 증가하고 있지만.

+2

+1 - 동의 함. max를 지정하면 최대 2^31-1 바이트 (2GB)가됩니다.이 값은 반드시 충분해야합니다. – ChrisBD

+0

+1. 이것은 OP가 자신의 상상력에서 벗어나지 않고 시작하는 제품이 아니라 "RTFM"유형의 답변입니다 (SP # 제한 매개 변수 길이는 명시된 바와 같이 사실이 아닙니다). – TomTom

+1

@MuhammadIdress,이 대답은 왜 받아 들여지지 않습니까? – Jodrell

0

데이터베이스의 BLOB 필드를 사용하십시오 (예 : MySQL의 경우 BIGTEXT). 그런 다음 HTML 컨텐트를 데이터베이스 필드로 스트리밍 할 수 있습니다. 또는 문서 형식 접근 방식을 사용하려면 HTML 컨텐트를 파일로 저장하고 데이터베이스의 컨텐트 위치를 보유하십시오. 후자의 접근법은 거대한 양의 콘텐츠를 검색하기 위해 hadoop 등을 사용하려는 경우 유용합니다. 처음에 좀 더 간단한 것을 찾으러 간다면, 방울 모양의 내용 검색이 지난 몇 년 동안 먼 길을왔다 갔다하면서 방울 방 법으로 갈 것입니다. 그러나, 클러스터 된 MySQL 버전 (예를 들어)은 xpath와 같이 사용자가 원할 수있는 몇 가지 사항을 크게 지원하지 않는다는 점에 유의하십시오.

0

이미지, HTML 또는 SQL WHERE 문에서 사용되지 않는 내용은 저장하지 마십시오. 대신 HTML 코드 조각과 이미지를 [PARENT_TABLE_NAME] [ROW_PRIMARY_KEY] .html과 같은 파일 시스템에 저장합니다. 이렇게하면 HTML 조각으로 WHERE 필터를 사용하지 않을 것이기 때문에 쿼리 할 때 데이터베이스 시간을 절약 할 수 있으며 HTML 업데이트/삭제/삽입은 OS가 더 빠르게 캐시 할 수없고 OS에 의해 적절히 캐시 될 수 없습니다.

관련 문제