데이터베이스가 잘 작동하는지 확인하기 만하면됩니다. 그리고 내가 아니라면 나는 여기서 잘못된 것을하고 있습니다.
나는 다음과 같은 테이블이 있습니다많은 동적 데이터베이스 관계 문제가 발생했습니다.
TableA{TableAID,...}
TableB{TableBID,...}
TableC{TableCID,...}
etc.
을 그리고 난 '뉴스 피드'의 일종처럼 사용하는 하나 개의 테이블이있다. 어떤 테이블 A, B, C에 무언가를 추가 할 때도이 테이블에 행을 추가합니다.
Feed{FeedID, TypeID, ReferenceID,...}
FeedID
TypeID
내가 테이블 A, B, C에서이 테이블의 행에 알이 ID 유형 테이블을 참조하고 기초 번호 PK 자동 증분을한다.
ReferenceId
은 표 A, B, C의 항목 ID입니다.
A, B, C 테이블에는 모두 다른 필드가 있습니다.
이제 피드 데이터를 가져 오려면이 테이블의 각 데이터를 응용 프로그램에서 사용하기 위해 데이터를 가져와야합니다.
...
CASE Feed.TypeId
WHEN 1 THEN tableA.someData
WHEN 2 THEN tableB.someData
WHEN 3 THEN tableC.someData
END AS Data,
...
1 : 1 확장 테이블은 공정하게 관련된 쿼리를 만듭니다. 나는 하나의 테이블을 선호한다. 각 피드 유형과 관련이없는 속성의 null 허용 열이있는 경우 – Andomar
A, B 및 C가 왜 다른 테이블입니까? 모델을 추상화하고 모델을 복잡하게 만드는 대신 유형 속성이있는 테이블을 하나만 만들면 어떨까요? 테이블을 기반으로하는 추가 열과 관련된 쿼리를 작성해야하는 경우 해당 쿼리는 해당 유형을 기반으로하는 추가 열을 포함하여 비슷하게 복잡 할 수 있습니다. 즉, @Andomar가 제안했듯이 모든 가능한 열은 다른 테이블에 있고 일부는 형식에 따라 Nullable이 될 수 있습니다. –
그들은 별도의 엔티티이기 때문에 A는 10 개의 열, B 3 열 및 C 5를 가질 수 있습니다. – 1110