2017-12-19 35 views
-1

On BBCode 또는 HTML 데이터베이스에 저장하는 방법에 대한 질문을 찾았지만 둘 다 저장하는 것은 어떨까요? 예를 들어, & body_html이라는 두 개의 열이있는 posts DB 테이블을 만듭니다.데이터베이스에 BBCode와 HTML 버전을 모두 저장 하시겠습니까?

body_bbcode 사용자 (포럼 회원)가 제출 한 원본 게시물을 저장하고 body_html에 해당 게시물의 구문 분석 (HTML) 버전을 저장합니다.

포럼 게시글을 표시하려면 body_html을 사용하고 & (인용문에 회신)을 편집하려면 body_bbcode을 사용합니다. 파서는 정규식을 사용하고 body_html없이 화제 페이지 당 최소 포럼 게시물을 변환 할 필요가 있기 때문에

내가 이렇게 할 이유입니다. 내가 틀렸다면 나를 정정하십시오. 그러나 성능 문제가 발생할 수 있습니까?

다른 한편으로 나는 이런 식으로하는 사람을 보지 못했고 그래서 데이터베이스에서 더 많은 공간을 차지하는 것 외에이 접근법의 단점이 무엇인지 궁금합니다.

또한 검색을 위해 일반 텍스트 버전을 저장하는 새 열을 추가하여 태그 자체가 검색되지 않도록하려고합니다 (예 : body_text).

+1

왜 실제 HTML을 DB에 저장해야합니까? 실제 HTML은 모든 포럼 회원 중 정적입니다. '게시'또는 '텍스트'를 저장하고 BBC를 올바르게 구문 분석하면됩니까? – Tony

+0

@Tony 설명되어 있지만 분명히 읽지는 못했습니다. '파서가 정규식을 사용하고 body_html없이 화제 페이지 당 적어도 15 개의 포럼 게시물을 변환해야하기 때문에 내가 이것을하고 싶은 이유가 있습니다. 내가 틀렸다고 정정하면 성능에 문제가 생길 수 있습니까? ' – PeraMika

+2

* "내가 틀렸다면 고쳐주세요.하지만 성능 문제가 발생할 수 있습니까?"- 할 수 있습니까? 이것을 테스트하고 실제 문제를 측정 했습니까? 이러한 성능 문제는 동일한 데이터를 여러 위치에 저장하는 데 추가되는 복잡성이 있습니까? 원시 백킹 데이터를 저장하고 해당 데이터에 대해 계산/대체를 수행하는 것을 선호하는 것이 좋습니다. 복잡성 때문에 성능을 교환하는 경우가있을 수 있지만 그렇게하기 전에 성능을 확실히 측정해야합니다. – David

답변

0

이유는 왜 파서가 정규식을 사용하고 body_html없이 주제 페이지 당 적어도 15 개의 포럼 게시물을 변환해야하기 때문입니다. 내가 틀렸다면 나를 정정하십시오. 그러나 성능 문제가 발생할 수 있습니까?

잘 설계된 bbcode 정규 표현식은 의미있는 방식으로 성능을 저해하지 않습니다.

bbcode 텍스트 및 html 텍스트에 대해 "중복"열을 만들지 마십시오.

제안 된 방법으로 실행하는 주요 문제는 필연적으로 html 코드를 변경한다는 것입니다. 예를 들어 HTML 링크에 클래스를 추가하고 YouTube 삽입물의 iframe 크기를 변경합니다. 그런 다음 문제가 될 html 열의 데이터를 업데이트하려고 시도합니다.