사용자가 객체에 대해 자신의 필드를 정의 할 수 있어야하고이 필드에 대해 허용되는 값을 정의 할 수 있어야합니다 (컴파일하지 않음). EAV을 사용하지 않고 어떻게 해결할 수 있습니까?EAV는 사용자 정의 필드를 대체합니까?
예 : 모든 개체는 123 상태 번호 (1.a 또는 2.b 또는 3.c 허용)에 대한 참조를 하나 이상 필요로합니다.
사용자가 객체에 대해 자신의 필드를 정의 할 수 있어야하고이 필드에 대해 허용되는 값을 정의 할 수 있어야합니다 (컴파일하지 않음). EAV을 사용하지 않고 어떻게 해결할 수 있습니까?EAV는 사용자 정의 필드를 대체합니까?
예 : 모든 개체는 123 상태 번호 (1.a 또는 2.b 또는 3.c 허용)에 대한 참조를 하나 이상 필요로합니다.
관계형 데이터베이스는 실제로 미리 정의 된 안정된 스키마의 존재에 의존합니다. 어쩌면 document-oriented databases을보아야 할 것입니다. 그들은 일반적으로 속성, 문서, 그리고 즉석에서 자유롭게 정의 할 수 있습니다.
스키마 유효성 검사는 스키마 자체를 사용자가 변경할 수있는 경우 응용 프로그램에서 수행해야합니다.
관계형 DB를 사용해야하는 경우에는 (어색한) 해결 방법이 있습니다. 나는 EAV (가능하다면) 또는 Thilo의 제안을 추천했다. 여기에 관계형 방식이 있습니다.
경고 : 우리는 에 열 수 각 데이터 유형에 대해 만들 수있는 사용자를 바인딩 최대 가정합니다
_
create table main_tbl(
numColumn1 number(10),
numColumn2 number(10),
numColumn3 number(10),
numColumn4 number(10),
numColumn5 number(10),
charColumn1 varchar2(100),
charColumn2 varchar2(100),
charColumn3 varchar2(100),
charColumn4 varchar2(100),
charColumn5 varchar2(100),
dateColumn1 date,
dateColumn2 date,
dateColumn3 date,
dateColumn4 date,
dateColumn5 date
)
create table main_tblmeaning(
user_id varchar(25) foreign key references users_tbl (user_id),
numColumn1_name varchar2(50),
numColumn2_name varchar2(50),
numColumn3_name varchar2(50),
numColumn4_name varchar2(50),
numColumn5_name varchar2(50),
numColumn6_name varchar2(50),
charColumn1_name varchar2(50),
charColumn2_name varchar2(50),
charColumn3_name varchar2(50),
charColumn4_name varchar2(50),
charColumn5_name varchar2(50),
dateColumn1_name varchar2(50),
dateColumn2_name varchar2(50),
dateColumn3_name varchar2(50),
dateColumn4_name varchar2(50),
dateColumn5_name varchar2(50)
)
create table users_tbl(
user_id varchar2(25) primary key,
user_name varchar2(50)
)
사용자가 숫자 열은 그에게 무료 번호 열 (numColumn1 - 5)을 할당하고자마다 main_tbl에 있습니다. main_tbl_meanings에 열 (numcolumn1-5)을 사용자가 제공 한 사용자가 읽을 수있는 이름으로 매핑하는 항목 (행)을 추가하십시오.