제목을 용서하십시오. 지나치게 서술하지 않고서도 문제를 해결하는 데 어려움이있었습니다.
연락처
속성
이벤트여러 데이터 세트에 대해 "메모"테이블을 구성하는 올바른 방법은 무엇입니까?
내가 메모를 부착하는 방법을 추가하고 위의 테이블에있는 항목에 :
내 응용 프로그램이가 좋아하는 테이블이 있습니다. 단일 메모가 연락처, 속성 또는 이벤트 (또는 세 가지 조합)와 연결될 수 있도록 노력하겠습니다.
현재 내 노트 테이블은 다음과 같습니다
noteID이
ContactID가이
을 int로
가 datatime
noteContent 텍스트
아이디의 INT (메모을 만들어 사용자 ID)를 noteCreated int로 propertyID int
eventID int
해당 부분은 굵게 표시됩니다. 지금은 이벤트에 대해 노트를 만들 때 노트를 삽입하고 이벤트 ID을 설정하기 만하면됩니다. 이벤트와 연락처가 인 경우 contactID도 추가 할 수 있습니다 (contactID 및 eventID가 설정 됨). 작동하는 동안, 나는 그것이 비효율적이고 적절하게 표준화되지 않았다고 생각합니다.
내가하려고하는 것은 일대 다 관계를 만드는 것이고, 문제는 "많은"부분이 다른 목표 테이블을 가질 수 있다는 것입니다. 동시에 메모를 선택하거나 삽입하는 데 필요한 쿼리 수를 줄이려고합니다.
내 생각 엔 이들을 서로 연결하는 테이블을 만든 다음 속성, 연락처 및 이벤트에 일정한 고유 한 targetType을 제공했습니다. 그러나 나는 여전히 그것이 최선의 방법이 아니라고 생각합니다. 또는 각 대상 테이블 (notes_properties, notes_contacts 등)에 대해 별도의 관계 테이블을 작성할 수 있습니다.
noteID INT
TARGETID INT
TARGETTYPE INT
많은 도움을 주시면 감사하겠습니다.사용에 가입 할 수 있습니다 다음
noteID
noteCreated
noteContent
userID
noteType (contact, property or event)
RelatedID
:
FROM Contacts C
INNER JOIN Notes N on C.ID = N.RelatedID and N.noteType = 'contact'
또는 당신이 정말로 나는이 같은 구조를 추천 할 것입니다 단일 테이블에있는 모든 노트를 유지하려는 경우
이 질문에 답해 주셔서 감사 드리며 내가 가질 수있는 것보다 더 명확하게 말하십시오. 노트가 사용되는 방식에 따라 다른 솔루션을 사용하게 될 것입니다. 추가 된 복잡성으로 인해 가장 적은 번거 로움이 발생합니다. –