utf8에 국가 및 도시 이름 목록이 있습니다. 두 목록 중 하나를 가져 오면 입력 한 것과 같은 순서로 반환해야합니다. 예를 들어숫자가 아닌 PK 필드 - 데이터베이스 디자인 문제
:
는Country(country_name|PK)
City(city_name|PK, country_name|FK)
COUNTRY_NAME 및 CITY_NAME는 고정 값을 변경하지 않을 것이다. 그러나 주문이 문제가됩니다. 내가 한 최대의 sortcountry하는 것이다 수치라는 새 열을 추가
Country:
UK
US
Africa
으로 주문 값이 입력 된 유지 확인하십시오.
Country(country_name|PK, sortcountry)
동일한 내용이 City 테이블에 적용됩니다.
나는 이것이 country(country_id, countryname)
보다 나은 해결책이라고 생각합니다. 내가 옳은 일을하고 있니?
디스크에 PK 순서로 항목을 저장하는 MySQL에 의존하는 것은 안전하지 않습니다. 몇 백 라인을 선택하고 주문하면 일반적으로 문제가 발생하지 않습니다. 논리적으로 데이터를 구조화합니다 (즉, country_id를 PK로, 별도의 정렬 열로). 앱의 다른 곳에서 최적화해야 할 더 큰 성능 문제가 발생할 가능성이 있습니다. – liquorvicar
불필요한 내부 결합을 피하려고했습니다. 방금 한 일을함으로써, 나는 가입하지 않고도 각 쿼리에 대한 도시 목록을 가져올 수 있습니다. 대체 무엇일까? sortcountry에 PK를 할당 한 다음 sortcountry (FK) 옆에 countryname을 추가 하시겠습니까? 좋은 대안 솔루션입니까? 참고 : sortcountry는 country_id를 나타냅니다. – user311509