OK, 여기 시나리오가 있습니다. 제 생각에 그것은 꽤 흔한 일이며, 이전의 삶에서 무차별 대입 접근법을 사용하여 그것을 해결했지만, 더 좋은 방법이 있어야한다고 생각합니다.순차적 인 이름 목록의 변경 사항을 SQL 데이터베이스에 저장하는 방법은 무엇입니까?
정렬 된 이름 목록과 사용자가 순서를 바꾸고 삭제하고 편집하고 이름을 추가 할 수있는 UI가있는 경우 SQL 데이터베이스에 저장된 목록을 어떻게 업데이트하겠습니까?
다음은 테이블 정의입니다 :
CREATE TABLE [dbo].[AssyLines](
[AssyLineID] [int] IDENTITY(1,1) NOT NULL,
[ShortName] [varchar](16) NOT NULL,
[LongName] [varchar](45) NOT NULL,
[Seq] [tinyint] NOT NULL,
CONSTRAINT [PK_AssyLines] PRIMARY KEY CLUSTERED
내가 테이블에서 모든 항목을 읽고 UI에서 서열의 순서로 표시됩니다 싶지. 그런 다음 사용자는 ShortName 또는 LongName을 편집하고 목록의 순서를 바꾸고 새 항목을 추가하거나 기존 항목을 삭제 한 다음 수정 된 목록을 다시 데이터베이스에 저장할 수 있습니다.
차이점이 있으면 클라이언트 - 서버 응용 프로그램입니다. WCF 서비스는 데이터베이스 상호 작용을 처리하고 클라이언트는 서비스와의 일련의 레코드를 전달합니다.
나의 총잡이 접근 방식은 테이블을 잠그고, 모든 항목을 삭제 한 다음, 테이블에 새로운 레코드를 재 작성하는 것입니다. 물론 모든 트랜잭션 내에서 저장 프로 시저와 테이블 변수 또는 임시 변수를 사용합니다 표. 조잡하지만 효과적이지만, 누군가를 사소한 편집을 할 때마다 테이블을 누크하고 다시 만들지 않고도이를 수행 할 수있는 표준 방법이 있다는 것을 느낄 수는 없습니다.
아이디어가 있으십니까? 나는 현재 작업하고있는 응용 프로그램에 4 개 또는 5 개의 목록을 가지고 있습니다.
감사합니다, 데이브
언급했듯이 Seq 값은 UI에서 제공됩니다. 기본적으로 들어오는 배열에서 Seq 순서로 정렬 된 목록 상자를로드합니다. 저장시 목록 상자 목록을 새 배열로 다시 읽은 다음 Seq 값을 증가시킨 다음 배열을 저장합니다. – DaveN59
테이블 디자인을 변경할 수 있습니까? 이것은 당신이 보여주고있는 것 이상으로 연결된리스트 구조처럼 들린다. – Randy
절대적으로 디자인을 변경할 수 있습니다. 프로젝트는 초기 단계에 있으며 데이터베이스와 애플리케이션을 모두 제어합니다. 그게 어떻게 작동하는지 설명 해주십시오 ... – DaveN59