이것저것 몽고db에 대해서 .. 공부하고 이제 .. 적용 시키려고 하는데 .. 하나 궁금한게 있어서
어떻게 해야 할지 몰라 혹시 사용 하고 계시는분 계시면 조언 듣고자 질문 드립니다..
기존 mysql 에서는.. 사용자 및 업체 들을 테이블로 나눴습니다.. 나눈 이유는 아래 질문 드리는것처럼
입력 받는 필드의 차이 때문입니다.. 예를들면
공장: 공장이름 , 전화번호, 팩스번호, 사업자번호 ...
판매처 : 판매처이름, 판매처 전화번호, 팩스번호 사업자번호,
사용자: 이름, 전화번호..소속 회사
"id":"k3341095",
"password":"",
"info": {
"type": [
'distribution', 'shop'
],
"name": '제연주식회사',
"ceo": '김제연',
"phone": "01*-****-****"
"phone": "0**-***-****",
"fax": "0**-***-****",
"email": "***@*****.com",
"address": "경기도 의정부시 ",
"reg_code": "213-01-202838"
},
회사의 정보가 이렇다고 하면
사용자는
"id":"k3341095",
"password":"",
"info": {
"type": [
'distribution', 'shop'
],
"name": '김제연',
"phone": "01*-****-****",
"email": "****@*****.com"
},
이런식으로 공장과 판매처는 거의 비슷비슷 해서 합치는게 수월하지만.. 사용자의 경우 info에 들어가는
내용이 전혀 틀려 집니다.. nosql의 장점중 하나가 비정규화 이고 ...
현재 mysql 상에서 user, factory, ... 등.. 사용자별로 테이블이 나눠져있는게 비효율적이라고 생각하고 있어서
하나로 합쳐서 하나의 nosql 콜렉션에서 관리하고 싶은데 ... 저런식으로 입력값의 필드가 .. 서로 다를경우
어떻게 해야 하는지 난감합니다.. nodejs + mongodb 를 사용해서 만들고 있는데
mongoose 에서는 schema 를 생성해서 관리 해야 할텐데 ..
그냥 info를 통으로 OBJECT형식으로 놓고 아무 제약없이 사용해야 할것 같은데 그게 맞는건지도 모르겠구요.
아시는분 계시면.. 조언좀 부탁 드리겠습니다.. 갑자기 해야 할게 많은데 설계부터 막히니 너무 답답하네요
블로그나 카페 구글 검색해도 .. sub-document 나 reference 에 관한 글들만 있지 .. 저렇게 ..
서로다른 필드를 가진 스키마 설계에 대한 글이 나온 곳은 없는거 같아서 .. 막막합니다.. 도움좀 주세요.
비정규화 = 다른 DB 연동이 힘듬
어차피 db에서 인출할때 100미리초가 걸리나 200 미리초 걸리나 어느 정도 미만이면 사용자가 보기엔 그닥 차이가 없는걸거란 말이죠...
거기다 이런 종류 데이터는 사람이 다른일 하다 까먹는시간이 많지 않나 싶기도 하네요
정규화도 .. 머리가 나빠서 잘 못하고 제 성격엔 그냥 json 으로 정규화 없이 개발하는게 편하고 해서 mongodb를 선택한겁니다.
mongodb 가 아니라 다른 db를 선택해도 ... 방식엔 크게 다르지 않더군요 .. 나중에 geo query 기능도 사용하게 되고 해서
선택하게 되었습니다.
DB_Type 필드에서..
판매자 : 1
사용자 : 2
관리자: 5
최고관리자: 9
이렇게 해보는 것도 방법이겠네요..
관리는 편하겠습니다.