2013-10-24 2 views
2

다음 필드가있는 파일럿 테이블을 만들고 있는데, 각 카테고리에서 테이블을 분리하여 별도의 테이블에 표시하고 조종사 기본 키를 통해 일대일 관계로 연결하면 어떤 이점이 있습니까?데이터베이스 테이블 디자인 지침

PILOT PROFILE 
    username 
    password 
    BASIC INFO 
    first_name 
    last_name 
    email 
    date_of_birth 
    address_line1 
    address_line2 
    town_city 
    county 
    postcode 
    country 
    tel_no 
    mobile_no 
    MEDICAL INFO 
    med_class 
    med_issued 
    med_special 
    med_verified 
    med_verified_date 
    med_verified_by 
    LICENCE INFO 
    licence_number 
    licence_type 
    licence_tailwheel 
    licence_retractableGear 
    licence_vpProp 
    licence_turboCharged 
    licence_cabinPressurisation 
    licence_sep_L 
    licence_sep_S 
    licence_mep_L 
    licence_mep_S 
    licence_tmg 
    licence_night 
    licence_imc 
    licence_ir 
    licence_fi 
    licence_fe 
    licence_other 
    licence_verified 
    licence_verified_date 
    licence_verified_by 
    FLIGHT EXPERIENCE 
    home_airport 
    hours_total 
    hours_pic 
    hours_in12months 
    hours_verified 
    hours_verified_date 
    hours_verified_by 
    PAYMENT 
    paid_date 
+0

약 2 만 개이지만 10,000 개 미만의 레코드가 있습니다. 파일럿이 로그인하거나 클럽이 파일럿을 검색하면 데이터에 한 번 액세스 한 다음 파일럿 정보를 볼 것입니다. 죄송합니다. "가로로 사일로 (silo)"라는 용어를 설명해 주시겠습니까? 문맥에서 벗어나 다룰 수 있다고 생각합니다. 그러나 감사합니다. –

+0

그 용어는 무의미했습니다. 여러 테이블에서 1 : 1 사용을 위해 데이터를 분할한다는 점에서 사용자가 묻는 것입니다. 제공된 척도 정보에 따라 대답을 입력하십시오. – zanlok

답변

3

번호이 맥락에서 행 데이터를 분해하지 마십시오.

규모의 성능을 위해 테이블 ​​1 : 1을 다른 테이블로 나누는 것이 좋지만 제공되는 정보를 고려할 때 이것은 절대 필요하지 않습니다.

그러나의 경우 쿼리 단위로 SELECT 필드 만 필요합니다. 의미 : 변덕스럽게 SELECT *을 사용하는 대신 SELECT username, password FROM pilot과 같은 것을 사용하십시오. 참고 사항 : 암호를 일반 텍스트로 저장하지 마십시오.

+0

훌륭합니다, 정말 고마워요. –

+0

그래, 나는 그 것을 열거하는 것을 잊었다. 그러나 고마워한다! –

관련 문제