2010-06-17 9 views
5

최근에 사용자가 일부 데이터를 저장하는 매우 간단한 CRUD 테이블을 만들었습니다. 데이터의 경우 사용자 지정 노드를 만들었습니다. 이 기능은 기본 노드 기능을 사용하여 CRUD 테이블에서 데이터를 생성, 편집 및 삭제하는 데 효과적입니다. 코드의 작은 비트를 사용하여 적절한 액세스 제어로 기본 기능을 프로그래밍하는 것이 얼마나 빠르고 쉬운 것인지 놀랍습니다. ....Drupal 노드를 사용하지 않을 때?

데이터는 블로그 게시물 (제목 없음, 본문 없음, 커미션 없음, 수정본 없음, 표시되지 않아야 함)과 같은 '콘텐츠'와 동일한 방식으로 처리되지 않으므로? q = 노드 페이지, 미리보기 없음, 티저 없음 등) ... 나는 drupal이 노드에 대해 자동으로 수행하는 작업을 '끄고'수정하는 데 대부분의 시간을 보내고 있습니다.

나는 맛의 문제를 안다.하지만 노드로 취급되어야하는 부분과 어디에서해야하지 않는 부분을 구분해야 하는가? 즉, 노드를 사용하지 않고 처음부터이 프로그램을 프로그래밍하는 것이 더 좋을까요?

+0

후속 조치로 ... 노드를 사용하지 않기로 결정한 것은 특정 인스턴스입니다. 나는 내 생각으로는 주석과 버전 제어 같은 것을 요구하지 않을 '데이터'조각을 단순히 사용하고 있다고 느꼈다. 대부분의 경우 개별 사용자에게 개인적으로 보관됩니다 (재무 데이터를 생각하십시오). 노드로 취급하는 것이 더 쉽다는 결론을 내 렸습니다. 즉, Drupal Menu 시스템, 양식 API 및 데이터베이스 API는 여전히 '워크 플로우'를 프로그래밍하고 사용자 정의하기 쉽습니다. Disclosure : CCK/views를 사용하지 않는 것에서 얻을 수있는 컨트롤이 마음에 듭니다. (하지만 그것은 내가 추측하는 맛의 문제입니다.) – stotastic

답변

6

쉽게 편집/업데이트 외에/삭제 기능이 매우 몇 가지 추가적인 이점이 분류를 통해

  • 가능한 분류를
  • 창조의
  • 암시 추적 추적 저자를 통해 암시 '소유권'/수정 시간
  • 기본적으로 기본 액세스 제어, 모듈의 거대한 선택에 의해 확장 가능
  • 유연한 쿼리 생성/나열/필터링 via CCK 필드를 통해보기
  • 가능한 임시 확장/주석
  • 워크 플로우, 행동의 가능한 정의와 후크 등
  • 엄청난 수의 프로그래밍/댓글 달기 거의 모든 사용 측면/시나리오
  • 을 조정 가로 챌 수, 투표 , 평가 및 노드/작업에 포함 된 모든 모듈에서 제공하는 다른 기능의 톤 ...

이 모든 것을 감안할 때, 난 당신이 데이터를 저장하지 사용 노드를 에 아주 좋은 이유가 필요합니다라고 말하고 싶지만 드루팔 (Drupal). 노드는 단순히 드루팔 (Drupal) 생태계의 모든 것을위한 기본 빌딩 블록이며, 원하지 않는 기본 '기능'을 제거하는 오버 헤드는 이득과 비교하여 매우 작게 보입니다.

즉, 노드 시스템과 분리 된 데이터를 처리하는 하나의 이유/논증은 데이터가 다른 노드에 주석을 달기를 직접 목표로하는 경우 (분류법 생각하기) 일 수 있습니다. 그러나 다른 노드에서 노드를 쉽게 참조 할 수 있기 때문에 (이 작업을 수행하는 방법에 대한 많은 옵션이 있음) 인수가 강력하지 않습니다.정규화 된 관계형 데이터 저장, 참조 무결성, 트랜잭션 처리 및 기타 관련 주제에 관련된 (정중하게 넣어) 드루팔 매우 강한되지 않습니다 -

또 다른 (더 강한) 인수는가 데이터 무결성 것이다. 그 방향으로 요구 사항이 있다면 노드 개념을 건너 뛰고 시스템 내에서 별도의 데이터 아일랜드를 만들고 유지 관리 할 수 ​​밖에 없습니다.

3

노드가 공용 일 필요가 없다고 생각하는 데 도움이됩니다. 일부 노드는 개인/내부 노드이며 액세스 제어로 추가 제어 할 수 있습니다. 당신이하고있는 방식대로, 당신이하는 일은 모든 확장 성을 만들어 어깨에 확장시킵니다.

나는 CCK/Taxonomy로 접근하고있을 것이다. 그런 식으로 추가 코드를 작성하지 않고 Views/Panels/etc 모듈 통합의 추가 이점을 얻습니다. 사용자 정의 데이터 노드를 사용

+0

'개인/내부'노드가 의미하는 것을 상세히 설명 할 수 있습니까? 당신이 가리킬 수있는 예가 있습니까? – stotastic

+0

모든 드루팔 (Drupal) 콘텐츠가 웹 사이트에 공개되어있는 것은 아닙니다. 그것은 당신이하려는 일에 달려 있습니다. 예를 들어 본문이 필요하지 않으면 콘텐츠 형식에서 해당 필드를 해제하십시오. 제목이 필요하지 않으면 자동 노드 제목 모듈을 구현하면 숨길 수 있습니다. 노드 유형에 대한 주석을 사용 불가능하게 할 수 있습니다. 노드 또는 /? q = 노드를 비활성화하려면 사이트 정보에서 FrontPage를 변경할 수 있습니다. – Kevin

+0

@stotastic 이벤트 노드는 사이트의 주 콘텐츠이지만 모든 사람이 액세스 할 수 있다는 의미는 아닙니다. 다른 모듈을 사용하면 택 소노 미 노드 유형 등을 기반으로 다른 액세스 규칙을 만들 수 있습니다. 노드를 유지하면 노드를 사용하는 모든 모듈이 추가 작업을 수행하지 않고도 CRUD 테이블에서 작동 할 수 있습니다. . 이것은 또한 시간을 절약 할 수 있습니다. – googletorp

관련 문제