웹 사이트의 프런트 엔드에 표시된 일련의 기사가 데이터베이스에 인코딩되어 있습니다.사용자 정의 순서 - 추가 열 또는 테이블?
사용자 지정 순서 지정에 대한 지원이 추가되면 데이터베이스에서이를 어떻게 표현할 수 있습니까?
P .: 기사가 둘 이상의 목록에 표시되는 경우가있을 수 있습니다.
웹 사이트의 프런트 엔드에 표시된 일련의 기사가 데이터베이스에 인코딩되어 있습니다.사용자 정의 순서 - 추가 열 또는 테이블?
사용자 지정 순서 지정에 대한 지원이 추가되면 데이터베이스에서이를 어떻게 표현할 수 있습니까?
P .: 기사가 둘 이상의 목록에 표시되는 경우가있을 수 있습니다.
사용자 정의 순서를 데이터베이스에 저장하는 유일한 방법은 테이블에있는 데이터 행과 같습니다. 그렇게하려면, 당신은
처음 두 개는 쉽습니다. 주문을 저장하는 방법에는 여러 가지가 있습니다. 설계 목표는 일반적으로 주문을 다시 작성해야 할 필요성을 줄이는 것입니다.
create table user_defined_order (
user_id integer not null references users (user_id),
article_id integer not null references articles (article_id),
sort_order <sort_data_type> not null,
primary key (user_id, article_id),
unique (user_id, sort_order)
);
마지막 제한 조건 인 unique (user_id, sort_order)
은 응용 프로그램에 따라 다릅니다.
sort_data_type 옵션
다른 데이터 유형은 당신에게 삽입하고 순서를 변경하기위한 다양한 옵션을 제공합니다. 가장 일반적으로 사용되는은 (
정확하게 이해하면 모든 사용자가 다른 순서로 주문을 표시 할 수 있습니다. 모든 사용자에게 ID가 있다고 가정하면 사용자 ID/기사 ID/표시 순서의 세 가지 필드로 구성된 표가 필요합니다. 여기서 사용자 ID와 기사 ID는 표의 복합 기본 키를 제공합니다.
주문 옵션은 테이블의 구조를 기반으로해야하며 자주 변경하지 않는 한 메타 데이터로 혼란을 더할 수 있습니다. 나는 개인적으로 응용 프로그램에서만 정의 된 명령의 정의를 유지합니다. –
"나는 개인적으로 응용 프로그램에서만 정의 된 주문의 정의를 유지할 것입니다." 예를 들어 XML 파일에서? –