Q&A

  • 필드에 관한 질문
제가 프로그램 하나를 만들고 있는데요.

데이터베이스에 관련된 건데 영 모르겟네요.
초보라...

뭐냐면..

음식명과 거기에 들어가는 재료와 양을 데티어베이스화 하는겁니다.

예를 들어...
음식명이 곰탕이면..
재료에 쇠고기 60g 파1.5g 소금 17g이 들어간다고 가정하면..

이걸 db에 저장하고 수정하는겁니다.

지금 문제가 뭐냐면...

음식명을 db에 넣는것 까지는 성공했는데..
거기에 들어가는 재료를 db에 넣는게 문제내요.

외냐면...

다른 음식을 db에 넣는다면 재료가 더 많아질수도 있기때문이죠.
예를 들어..

곰탕은 3가지 필드만 있으면 되지요.
그러니깐..쇠고기, 파, 소금...
그런데...

다른 음식을 만든다면..필드가 더 늘어날 수도 있잖아요?
즉..
쇠고기, 파 , 고추장, 소금, 설탕...등등.

이렇게 필드가 일정치 않은데 어케 처리하죠?

답변 부탁 드려요.
6  COMMENTS
  • Profile
    임현창 2002.02.07 23:22
    대표적인 마스터/디테일 문제입니다.
    델파이책 어느 거를 봐도 약간씩은 설명이 되어있습니다.
    이런 경우가 많습니다. 예를 들어 대학교에서 학생이 수강신청하는 문제,
    또는 견적서의 세부 품목 문제입니다.

    최소한 두 개의 테이블이 필요합니다.

    하나는 요리 테이블이고, 다른 하나는 요리 재료 테이블입니다.

    요리 테이블 :
                  요리 이름

    요리재료 테이블 :
                  요리 재료 이름
                  요리 이름
                  필요양
                  단위

    예를 들어 곰탕이라는 요리를 디비화 시키면

    요리테이블에 '곰탕'이라는 레코드가 하나 들어가겠죠?
    그리고 요래재료 테이블에는 요리재료이름은 다르지만
    요리이름은 같은 레코드들이 쭉 들어갑니다.
    이를테면 '파:곰탕:1.5:g', '쇠고기:곰탕:60:g', '소금:곰탕:17:g',
    (소금이 17g이나? 짜겠다...)

    필요한 만큼 계속 만들어주면 되죠...
    그런데 문제는 쇠고기가 곰탕에만 들어가는게 아니라 다른
    음식에도 들어가겠죠? 예를 들어 '파:감자탕:2:g'같이 말입니다.
    위와 같이 간단한 구조의 디비라면 별문제가 없겠지만,
    조금 더 복잡해지면 또는 요리재료 테이블에
    넣어야할 필드가 많아지면 중복이 문제될 수가 있습니다.
    그래서 테이블을 두 개나 세개 이상 만들어 관리하기도 합니다.



  • Profile
    김현희 2002.02.08 09:42
    이것때문에 벌써 몆칠째 고생이네요.

    꼭 만들어야 하는건데 --;

    아직 아무것도 않했으니...

    이거 참고할 만한 소스 없을까요?

    그냥 말로 들어서는 ...도무지 이해가 잘 안되서요.

    어떤식으로 구현하는건지..잘 모르겠네요.
    나름대로 이것 저것 해보았는데...

    부탁 해욥.

    참고할 만한 것들이 있으면 좀 보내주심 좋을것 같은데...

    ..도움좀 주세욥.

    >대표적인 마스터/디테일 문제입니다.
    >델파이책 어느 거를 봐도 약간씩은 설명이 되어있습니다.
    >이런 경우가 많습니다. 예를 들어 대학교에서 학생이 수강신청하는 문제,
    >또는 견적서의 세부 품목 문제입니다.
    >
    >최소한 두 개의 테이블이 필요합니다.
    >
    >하나는 요리 테이블이고, 다른 하나는 요리 재료 테이블입니다.
    >
    >요리 테이블 :
    >              요리 이름
    >
    >요리재료 테이블 :
    >              요리 재료 이름
    >              요리 이름
    >              필요양
    >              단위
    >
    >예를 들어 곰탕이라는 요리를 디비화 시키면
    >
    >요리테이블에 '곰탕'이라는 레코드가 하나 들어가겠죠?
    >그리고 요래재료 테이블에는 요리재료이름은 다르지만
    >요리이름은 같은 레코드들이 쭉 들어갑니다.
    >이를테면 '파:곰탕:1.5:g', '쇠고기:곰탕:60:g', '소금:곰탕:17:g',
    >(소금이 17g이나? 짜겠다...)
    >
    >필요한 만큼 계속 만들어주면 되죠...
    >그런데 문제는 쇠고기가 곰탕에만 들어가는게 아니라 다른
    >음식에도 들어가겠죠? 예를 들어 '파:감자탕:2:g'같이 말입니다.
    >위와 같이 간단한 구조의 디비라면 별문제가 없겠지만,
    >조금 더 복잡해지면 또는 요리재료 테이블에
    >넣어야할 필드가 많아지면 중복이 문제될 수가 있습니다.
    >그래서 테이블을 두 개나 세개 이상 만들어 관리하기도 합니다.
    >
    >
    >
    >>제가 프로그램 하나를 만들고 있는데요.
    >>
    >>데이터베이스에 관련된 건데 영 모르겟네요.
    >>초보라...
    >>
    >>뭐냐면..
    >>
    >>음식명과 거기에 들어가는 재료와 양을 데티어베이스화 하는겁니다.
    >>
    >>예를 들어...
    >>음식명이 곰탕이면..
    >>재료에 쇠고기 60g 파1.5g 소금 17g이 들어간다고 가정하면..
    >>
    >>이걸 db에 저장하고 수정하는겁니다.
    >>
    >>지금 문제가 뭐냐면...
    >>
    >>음식명을 db에 넣는것 까지는 성공했는데..
    >>거기에 들어가는 재료를 db에 넣는게 문제내요.
    >>
    >>외냐면...
    >>
    >>다른 음식을 db에 넣는다면 재료가 더 많아질수도 있기때문이죠.
    >>예를 들어..
    >>
    >>곰탕은 3가지 필드만 있으면 되지요.
    >>그러니깐..쇠고기, 파, 소금...
    >>그런데...
    >>
    >>다른 음식을 만든다면..필드가 더 늘어날 수도 있잖아요?
    >>즉..
    >>쇠고기, 파 , 고추장, 소금, 설탕...등등.
    >>
    >>이렇게 필드가 일정치 않은데 어케 처리하죠?
    >>
    >>답변 부탁 드려요.
    >>
    >
  • Profile
    장명선 2002.02.07 22:25
    테이블이 총 3개가 필요하겠네요
    첫번째는 음식명 테이블
    두번째는 재료명 테이블
    세번째는 음식과 재료의 조합을 할 테이블

    이런씩으로 만들면 되겠져
    각 필드는 님이 잘 설정하셔야 합니다.

    그럼 즐코하세요

  • Profile
    황선웅 2002.02.07 20:50
    저 같으면 이렇게 하겠네요.

    1. 음식명 및 그 음식에 관한 설명등이 들어있는 테이블

    2. 음식의 재료가 들어가는 테이블

    두개의 테이블을 참조 키필드를 만들어 필요할테 참조하면 되죠.
    그러면 재료를 넣으시고 싶을만큼 넣으실수 있겠죠.^^

    재료 테이블

    음식명      재료       양      단위
    ------     ------   -----  ------
    곰탕       쇠고기     60        g
    곰탕          파         1.5      g
      

  • Profile
    김현희 2002.02.07 22:10
    님.

    두개의 테이블을 참조 한다는 것이 무슨 의미인지 잘 모르겠네요 --;;

    초보라 ...

    그것도 설명을 부탁드려요..

    혹시 예제라도 하나 만들어 주심 안될까요??

    꼭 만들어야 하는 프로그램인데...

    도무지 어케 해야 할지 몰라서요.

    부탁 해요..

    도움좀...주세욥 --;

  • Profile
    황선웅 2002.02.08 01:44
    참조 한다는건
    다른분이 설명한거처럼 Master/Detail의 내용으로 말씀드린거예요.
    아마도 delphi책을 한권이라도 가지고 계시면 분명 예제가 나올거예요^^

    아님 테이블을 조인할수도 있죠. 방법에 따라선요....

    혹 모르시겠으면 멜 주세요. 지금 하시는 프로그램의 간략한 내용하구요