2009-04-03 4 views
0

최근 사이트의 관리자가 뭔가를 '추가'할 수있는 기능을 추가해야합니다.지속되어야하는 일회성 데이터 조각으로 무엇을합니까?

이 토론에서는 '추천 기사'라고 가정 해 보겠습니다.

당연히 우리는 이미 'articles'의 데이터베이스 모델을 가지고 있습니다. 그래서 그것은 이미 20 개 이상의 컬럼을 가지고 있으므로, 나는 이미 더 이상 bloating하지 않을 것입니다.

내 옵션 :는 '기능'부울 (또는 INT)에

  1. 압정과 단 한 가지가

  2. 이를 개최 할 수있는 새로운 모델을 만들기 주어진 시간에 선보일 예정 실현 및 팝업 할 수있는 다른 기능 크리프 항목이 있습니다.

  3. 나는 당신의 제안을! ;)

이 경우 어떻게합니까? 나는이 모든 것을 가로 질러 왔고, 나는 단지 한 열을 더 끈으로 묶는 것을 싫어한다. 이 정보는 계속 유지되어야합니다.

답변

2

한 번에 하나의 기사 만 추천 할 수있는 경우 bool 열을 추가하는 것은 낭비입니다. 레벨을 올라가고 FeaturedArticleID에 대한 열을 추가해야합니다. Site_Settings 테이블이 있습니까?

+0

예 ... 나는 이것을하는 것에 대해 생각하고있었습니다. 앞으로 이런 일이 더 많이 일어날 것입니다. – eyberg

0

속성 테이블이있는 것처럼 확장 가능한 모델을 사용한 다음 연결 테이블을 사용하여 집필과 특성 간의 다 대다 관계를 형성 할 수 있습니다. 이런 식으로, 이러한 종류의 기능은 스키마를 수정할 필요가 없습니다.

3

기본적으로 키 - 값 저장소 인 간단한 2 열 테이블을 추가 할 수 있습니다. 그런 다음 (featured_article_id, 45) 또는 첫 번째 추천 ID가 무엇이든간에 값이있는 새 열을 추가하십시오.

편집 : rmeador의 의견에서 지적했듯이 이것은 비교적 간단한 것으로 유지되는 한 좋은 해결책 일뿐입니다. 보다 복잡한 데이터를 저장해야하는 경우보다 유연한 솔루션을 고려해야합니다.

+0

또한이 "기능"이 더 많은 기능을 포함하는대로 확장되면 전체 솔루션을 만들기 위해 리팩터링해야 할 것입니다. +1 – rmeador

0

parameter_name 및 parameter_value 열이있는 일종의 global_settings 테이블이 있습니다. 여기에 추천 기사 ID를 넣으세요.

이 같은 빠른 - 및 - 더러운 물건
0

, 내가 설정 테이블의 일종을 포함하려면 :

CREATE TABLE Settings (
    SettingName NVARCHAR(250) NOT NULL, 
    SettingValue NVARCHAR(250) 
) 

대신 글로벌 사람의, 설정을 사용자 별 또는 고객이 필요한 경우, 당신은 할 수 특정 사용자/고객에게 식별 할 열을 추가하십시오. 그런 다음 "FeaturedArticle"행을 추가하고 문자열에서 ID를 파싱 할 수 있습니다. 그것은 매우 최적화 된 것이 아니지만 plaintext는 매우 융통성이 있습니다.

관련 문제