질문/조언질답게시판
Extra Form
PHP PHP 7.4
CMS Rhymix 1.x

모듈을 개발중인데, 한 멤버에게 적용되는 전역설정을 추가해야 합니다

 

그런데 모듈 구조상 따로 테이블을 하나 만들어서 설정을 넣어야 하는데, 공간낭비같은 느낌이 들어서..

 

그래서 생각해보니 member 테이블에 컬럼 하나를 추가하는게 가장 빠르게 먹힐거 같더라고요

 

그런데 member 테이블은 RX에서 관리하는 테이블이기도 하고, 코어수정은 아니지만 멋대로 변경하면 나중에 좀 문제가 생길수도 있을거 같아서 말이죠..

 

Null 허용해주면 데이터 추가/삭제에 전혀 문제가 없기는 하지만 좀 찝찝해서 질문 올립니다

 

라이믹스에 정상적인 동작이 보장된다는 전제하에, RX 기본 DB 테이블에 컬럼을 추가하는 등의 수정작업을 모듈에서 진행해도 되나요? (정확히는 모듈 설치시에겠네요)

  • profile

    개인적으로 컬럼을 추가하거나 변경해서 사용하시는 것은 상관없습니다.

    타인에게 배포 또는 판매할 자료에서는 비추입니다.

     

    호환성 문제는 둘째치고, member처럼 많은 데이터가 쌓이는 테이블에 ALTER TABLE 한 번 날리는 것만으로도 사이트가 수 분 ~ 수십 분간 먹통이 되는 수가 있습니다. documents, comments, files 등 많이 사용되는 테이블 모두 마찬가지입니다. 코어 개발팀도 이런 테이블들의 스키마를 함부로 변경하지 못합니다. 그냥 배포했다가는 누구나 들어도 알 만한 사이트가 터지는 사태를 볼 수도 있습니다. ㅋㅋㅋ

     

    memberController->updateMemberExtraVars()를 사용하면 가입폼에 있는 것 외에도 회원정보에 임의의 확장변수를 추가할 수 있으니, 만약 이걸로 구현할 수 있는 기능이라면 테이블 스키마 변경이 필요없을지도 모르겠습니다. 물론 serialize해서 저장되는 컬럼이니까 검색 같은 건 어렵겠죠...

  • profile profile
    네, 저도 Extravars를 사용해보려고 고려해보았지만, DB만을 활용해 검색이나 정렬이 어렵다는 점에서 좀 꺼려졌습니다 ㅜㅜ

    말씀 해주신 것을 고려해보니 차라리 테이블을 하나 더 생성하는게 더 싸게 먹힐꺼 같네요
    감사합니다!
  • profile profile

    검색도 어느정도는 가능... 합니다...?
    serialize 된 데이터도 일단은 문자열이라, 키값이랑 데이터를 잘 엮어서 like 쿼리를 날리면 불가능하지는 않아요.
    물론... 성능은 좀 타협을 해야겠지요. 정렬 기능도 그렇구요ㅠ

     

    따로 정렬이나 검색이 필요없는 데이터이거나, 관리자만 수정할 수 있는 데이터를 넣을 예정이라면,
    설명(description) 란을 활용하셔도 될 것 같습니다.
     

    스크린샷 2021-01-05 오후 11.40.08 Redacted.png

     

    제가 요론 방식으로 활용하고 있습니다.

    물론 지금 필요하신 기능과는 좀 동떨어진 방식이기는 합니다ㅠ

  • profile profile
    회원가입 시 트리거를 이용해서 member 테이블과 새로 생성한 테이블을 join하면 좋을것 같네요.