|
"성능적으로 괜찮은가?" 라는 질문은 어찌 생각하면 애매합니다.
전체 리스트를 화면(StringGrid등)에 뿌려준다면 B안이 좋겠죠
그런데 만약 특정 가게에서 특정상품을 찾는것이라면 B보다 A안이 좋을수도 있겠죠
하지만 왠만한 경우에는 두가지 방식중 어느 방식으로 해도 크게 속도에 성능차이가 없을것이라는 얘기입니다.
그리고 상점이나 삼품의 갯수가 매우많은경우에에는 좀 다를수 있겟지만요
속도면에서 성능의 차이가 별로 없다면
가독성이나 코딩 편의성(?) 등 다른쪽에서 살펴봐야겠죠
개인적으로 굉장히 대용량의 data를 처리하는 경우가 아니라면
속도보다는 가독성 이나 아님 oop적인 부분이나 다른 부분에 신경을 더 씁니다.
이경우 저라면 DB를 B방식으로 했다면 자료구조도 B방식으로 했을지 모르겠네요
그럼..
배우는개발자 님이 쓰신 글 :
: 답변 감사합니다.
: 제 설명이 너무 부족했네요. ^^;;
:
: 좀 더 열심히 설명드려 보겠습니다.
: 예를들어 상점 클래스와 상품 클래스가 있습니다.
: 상점 클래스의 인스턴스는 문방구, 야채가게, 카메라가게가 있고
: 상품 클래스의 인스턴스는 필기구, 스케치북, 필통, 오이, 당근, 토마토, 니콘, 캐논 이 있습니다.
:
: 그렇다면 이들 데이터를 관리하는 자료구조를 만들었을때
: 그림에서 방법 A안은 이들의 관계를 개념 그대로 구성한것입니다.
: 문방구가 필기구, 스케치북, 필통 을 리스트로 가지고 있습니다.
: 야채가게는 오이,당근,토마토를 카메라가게는 마찬가지로 니콘,캐논을 지닙니다.
:
: 방법 B안은 실제 DB에 테이블로 저장되는 방식인데
: 그걸 프로그램에서도 비슷한 구조로 만들어 보았습니다.
: 문방구, 야채가게, 카메라가게가 단 하나의 상점리스트 목록으로 관리되고
: 필기구, 스체치북,..., 캐논까지 모든 상품 인스턴스도 하나의 상품리스트 목록으로 관리됩니다.
: 참조하는 방법은 DB FK를 쓰는것처럼 상품이 상점인스턴스 고유식별번호를 지니고 있습니다.
:
: 제가 묻고 싶은것은 성능적으로 어느것이 더 괜찮은가 입니다.
: 많은 관심 부탁드리겠습니다.
|