2014-02-10 2 views
0

저는 레일을 처음 사용하고 레일 앱을 만드는 방법에 익숙합니다. 데이터베이스에 html 링크를 저장하는 효율적인 방법을 알고 싶습니다.db에 html 링크를 저장하는 효율적인 방법은 무엇입니까

예를 들어, "Post"라는 모델이 있고 Post에는 해당 콘텐츠에 html 링크 (예 : http://example.com)가 있습니다. 이러한 링크는 다음과 같이 렌더링되어야합니다.

POST 
<ul> 
    <li><a href="...">html link</a></li> 
    <li><a href="...">html link</a></li> 
    ... 
</ul> 

이 문제를 해결하기위한 아이디어가 3 가지 있습니다.

  1. 관련 링크를 저장하고 RESTful 리소스로 취급하기 위해 "링크"(또는 비슷한 링크)라는 다른 모델을 만듭니다. 그래서 Post has_many links을 Post 모델에 넣고 <li><%= link_to "#{post.link.name}", post.link.url %></li>처럼 렌더링합니다.

  2. yaml 또는 json으로 링크를 직렬화하고 posts 테이블의 새로 만든 "링크"열에 저장 한 다음 몇 가지 방법으로 추출하고 렌더링합니다.

  3. 그대로 HTML 링크를 저장하십시오. posts 테이블의 새로 만든 "링크"열에 <li><a href="...">html link</a></li>

이러한 링크의 수가 증가하거나 감소 할 수 있습니다.

그렇다면 확장 성, 응용 프로그램 성능 및 유지 관리 측면에서 링크를 저장하는 가장 효율적인 방법은 무엇이라고 생각하십니까?

+0

"이 문제를 처리하는 가장 효율적인 방법"- 어떤 문제입니까? –

+0

각 게시물의 내용과 별도로 관련 링크를 표시하고 싶습니다. 나중에이 링크를 추가/삭제하고 싶습니다. 목록의 마크 업은 앞으로 변경 될 수 있습니다. – tkymtk

+0

사용자가 이러한 링크를 입력하거나 시드 데이터입니까? – Philip7899

답변

1

일반적으로 아이디어는 독창적 인 질문/답변을 피하는 것이지만 어쨌든 귀하의 질문에 답변 할 것입니다.

나는 확실히 첫 번째 방법을 말할 것입니다. Ruby는 일반적으로 객체 지향적입니다 (true, false, nil은 모두 객체를 가지고 있으며, 말할 수있는 primitives는 없습니다). 링크를 클래스에 던져 놓는 것이 훨씬 더 중요합니다. 그것은 연관이 될 것이기 때문에, 레일즈 연관 (see here)을 통해 내장 된 모든 추가 메소드의 이점을 누릴 수 있습니다.

  1. 프로젝트
  2. 트랙의 IP에 다른 모델에 링크
  3. 넣어 링크를 후속 수를 추가로 당신이 원하는 경우에 그 꼭대기에, 그것은 미래에 쉽게 확장 할 수 있습니다 링크를 따른 사용자 중

등 다양한 가능성이 있습니다.

관련 문제