2012-03-05 5 views
0

범주의 게임 순서에 관한 데이터를 보관할 테이블을 만들어야합니다. Game_ID, Category_ID 및 Order를 3 개 필드로 계획하고 있었지만 Order 필드에 대해 어떻게해야할지 모르겠습니다.범주의 항목 순서

주문 필드에서 가장 낮은 숫자의 게임을 맨 위에 표시하면 주문을 다시 할 때 지저분해질 수 있다는 점만 제외하면 괜찮습니다. 내가 50 게임을 가지고 주변을 뒤섞기로 결정했다면 그 범주의 모든 행에 대해 SQL 업데이트를 수행해야 순서를 업데이트 할 수 있습니다.

이 방법이 가장 좋은 방법입니까 아니면 단순화 할 수 있습니까?

답변

1

성능이 중요하지 않은 경우 (솔직히 대개는 그렇지 않습니다) 보통 세트의 모든 항목을 업데이트합니다.

perf를 최적화하려는 경우 응용 프로그램 계층에서 추가 로직을 수행하여 데이터베이스 업데이트를 최소화 할 수 있습니다. 주문 필드는 처음에 10 단위로 (또는 의미가 무엇이든) 채워질 수 있습니다. 그런 다음 항목을 다시 주문할 때 앱 계층에서 원하는 지점에 배치 할 주문 값을 계산합니다. 가능하지 않으면 모든 주문 값을 업데이트하십시오.

정수가 아닌 순서 필드를 사용하면 훨씬 더 성공적 일 수 있다고 생각하지만 매번 정수 필드를 구현하는 것을 보았습니다.

+0

주문 필드에 정수 필드를 사용할 이유가 없습니다. 또한 모든 RDBMS에서 예약어가 잘못된 생각처럼 보이면 칼럼의 이름을 지정하는'(CATEGORY_ID, GAME_ORDER)'에 고유 한 색인을 가져야합니다. –