나는 다음과 같은 테이블 디자인이 있습니다데이터베이스 설계 - 다른 필드는 특정 코드가있는 경우이 필드에만 적용됩니다 (2NF)
TABLE: WORK_ACTION_CLASS
WORK_ACTION_CLASS_ID VARCHAR2(24) Primary Key
NAME VARCHAR2(64) 64 Action Name
ROLE_CLASS_ID VARCHAR2(24) Role Class ID That Performs This Action
CHECKLIST_CLASS_ID VARCHAR2(24) Checklist Class PK
WORK_ACTION_TYPE_ID VARCHAR2(3)
WORK_ACTION_TYPE_ID가 simpe 조회를하다
1=Done Button
2=Dynamic Checklist
3=Custom Form
4=Progress Log
5=Approve/Decline Button
때 조치 유형이 동적 체크리스트 인 경우 CHECKLIST_CLASS_ID
이 필요하므로 작업에서 프로그래밍 방식으로 사용할 점검 목록의 특성을 알고 있어야합니다. 이 작업 정의가 동적 체크리스트가 아니면 CHECKLIST_CLASS_ID
필드는 적용 할 수 없기 때문에이 디자인이 마음에 들지 않습니다. 나는이 사실을 분명히하는 가장 좋은 방법을 모른다.
내 테이블이 3NF가 아닌 2NF라고 말하는 것이 맞을 수도 있습니다. 그렇다면 3NF에 어떻게 가야합니까?
네, 체크리스트 클래스 ID를 구분하는 것이 좋습니다. 트리거, 검사 및 제약 조건과 함께 제안하는 논리 중 일부를 사용하여 Java 웹 응용 프로그램에 도움을 줄 수 있습니다. – jeff