국가 목록이 있습니다. 각 사용자는 여러 국가를 확인할 수 있습니다. 일단 저장되면,이 "사용자 국가 목록"은 특정 사용자가 선택한 국가에 다른 사용자가 들어갈 수 있는지 여부를 확인하는 데 사용됩니다.단일 데이터베이스 셀당 여러 항목 저장
질문은 하나의 VARCHAR에서이 문제에 대한 가장 효율적인 방법 ... 내가 캐나다, 미국, 프랑스 등의 분리 된 목록으로 사용자 선택을 저장, 하나가
(최대) 될 것입니다 필드에 문제가 있지만 일단 독일 사용자가 페이지에 들어 오면이 확인을 수행해야합니다. 독일을 검색하려면 모든 항목을 가져오고 각 필드 값을 확인하거나 SQL을 'like'로 사용하는 것이 필요합니다.
더 나은 해결책이나 팁이 있다면 i 듣기 좋다.
단지 많은 사용자가 자신의 페이지를 방문 할 국가를 선택할 수 있습니다. 수백만 명의 사용자가 해당 페이지에 액세스합니다. 따라서 빠른 접근 방식이 더 좋을 것입니다.
기술, MSSQL 및 ASP.NET
감사
데이빗, 내가 생각하기에 처음에는 500 명의 사용자가 있지만 각 사용자에게는 적어도 2 가지 국가 목록의 변형이 있음을 알 수 있습니다. (국가, ID 및 이름) 각각 4 개국. 일부 사용자가 클릭 할 때마다 두 개의 큰 테이블을 검사해야 할 경우 Many-To-Many가 훨씬 더 빠른 접근 방법이 될 것입니까? 최선의 DB 최적화 관행은 many-to-many를 사용하는 것이지만, 너무 많은 최적화가 더 큰 문제를 만들 수있는 때라고 확신합니까? – eugeneK
@eugeneK, 해당 값을 찾기 위해 문자열을 구문 분석하면 가장 느린 방법이 될 것입니다 –
아니요 ... 많은 경우에 많은 사람들이 여전히이 경우에 갈 수 있습니다. @KM이 말했듯이, 그 값들을 파싱하는 것은 혼란 스러울 것이며, 여러 가지 이유로 더 큰 성능을 발휘할 것입니다. 단지 한 가지 이유로,이 필드를 기반으로 where 절을 필터링해야한다면, "like"를 사용하십시오. "="또는 더 나은 검색을 사용하는 것보다 훨씬 느립니다. 적절히 색인 된 필드에서 "="를 검색하십시오. – David