매우 비슷한 속성을 가진 엔티티를 저장하는 가장 좋은 방법을 결정하려고합니다. 주요 차이점은 각 엔티티가 다른 엔티티를 참조한다는 것입니다. 나는로 설정하여 데이터베이스를가는 :데이터베이스 스키마 - 하나의 큰 테이블 또는 여러 테이블을 만드시겠습니까?
entity_a (1-1,000 Records) [Data rarely changes]
id|created|updated|entity_b_id|category_id|name|entity_b_id|entity_c_id|entity_d_id
entity_b (10,000-1,000,000 Records) [Data changes constantly]
id|created|updated|entity_b_id|category_id|name|entity_c_id|entity_e_id|entity_f_id
entity_c (10,000-10,000,000 Records) [Data changes constantly]
id|created|updated|entity_b_id|category_id|name|entity_a_id|entity_f_id
entity_d (0-1,000 Records) [Data rarely changes]
id|created|updated|entity_b_id|category_id|name
entity_e (1-100 Records) [Data rarely changes]
id|created|updated|entity_b_id|category_id|name|entity_a_id|entity_b_id
entity_f (0-50,000 Records) [Data frequently changes]
id|created|updated|entity_b_id|category_id|name|entity_c
entity_g (10-100 Records) [Data rarely changes]
id|created|updated|entity_b_id|category_id|name
entity_h (10-1,000 Records) [Data rarely changes]
id|created|updated|entity_b_id|category_id|name|entity_e_id
entity_i (1-10 Records) [Data rarely changes]
id|created|updated|entity_b_id|category_id|name
하지만 그것을 하나 개의 큰 테이블을 쉽게 관리 할 수있을 것이라고 제안 된 것 :
ent (20,000-11,000,000 Records)
id|created|updated|ent_id(b)|category_id|name|ent_id(a)|ent_id(b)|ent_id(c)|ent_id(d)|ent_id(e)|ent_id(f)
이 두 번째 방법 우려가 테이블의 크기는 ID는 int (11)이고이 ID의 여섯 개의 열이 주로 0으로 설정됩니다.
그러나 많은 사용자가 레코드를 매우 자주 액세스하므로 내 관심사는 액세스 속도입니다. 일단. 나는 CodeIgniter를 사용하고 있으며 가능한 한 많은 데이터베이스 부하를 걸 수있는 캐싱 기능을 사용하기를 희망하지만 일부 데이터가 초 단위로 변경됨에 따라 제한 될 것입니다.
모든 도움을 주시면 감사하겠습니다.
는 엔티티 사이의 관계의 본질은 얼마나 많은 열 또는 행 각이 있거나 빈도가 액세스되는 것보다 더 중요하다. 엔티티가 어떻게 관련되어 있는지 보여 줄 수 있습니까? 또한 정규화에 익숙한 지 알려주십시오. –
첫째, 제 데이터베이스 어휘가 기술적이지는 않습니다. 엔터티는 첫 번째 예제에서 왼쪽 조인으로 연결되며 엔터티를 연결하도록 선택됩니다. 그러나 하나의 엔티티에 대한 변경이 링크 되어도 다른 엔티티에는 영향을 미치지 않습니다. – RebDev