2009-10-22 6 views
0

사용자가 제품 데이터베이스에 제공된 표준 엔티티 스키마에 사용자 정의 필드를 추가 할 수 있도록 처리하는 방법이 오늘 다시 오늘 나타났습니다. 나는 실제로 사용자에게 제한된 DDL 함수를 제공하는 함수를 제공하므로 테이블에 새로운 사용자 정의 필드를 실제로 추가 할 수 있습니다. 또 다른 방법은 맞춤 입력란 용으로 별도의 표를 만드는 것입니다. Customers 및 CustomersEx는 CustomersEx 만 변경할 수 있지만 여기에서는 업데이트가 정상보다 까다로워집니다. 우리가 논의한 마지막이자 가장 중요한 옵션은 행이 엔티티 이름, 필드 이름, 필드 값인 EAV 테이블을 제공하는 것입니다.사용자가 엔티티에 맞춤 속성을 추가하는 가장 좋은 방법은 무엇입니까?

어떤 접근 방식이 가장 좋습니까?

답변

0

DDL을 통해 테이블에 필드를 추가하는 것이 좋지만이 테이블은 주 테이블과 분리되어야합니다. 그렇게하면 사용자의 사용자 정의 필드 추가에 영향을주지 않으면 서 데이터베이스 스키마의 변경 사항을 스크립팅 할 수 있습니다. 오른쪽 조인은 수행하기 쉽고 사용자 정의 필드가 없으면 별도의 테이블에 레코드가 필요하지 않습니다.

데이터를 세로 형식으로 표시하려는 경우 EAV 테이블을 선택하는 것이 좋습니다. 피벗 쿼리를 실행하여 가로로 표시 할 수도 있습니다.

1

나는 두 번째 아이디어를 선호한다. 우리는 비슷한 것을하지만 테이블 Attr [ibute] 테이블을 호출합니다. Company, Company 연락처 속성은 비즈니스 객체 (1 : M)의 콜렉션이며 NHibernate는 데이터베이스 조작을 처리합니다. 우리는 이러한 필드를 UI의 속성으로 명시 적으로 표시하고 테이블의 추가 필드 인 것처럼 표시하지 않습니다.

+0

나는 두 테이블 사이의 구분을 시도하고 석고하지 않도록주의하는 것을 좋아합니다. – ProfK

관련 문제