2014-12-20 3 views
0

멀티 테넌트 웹 앱을 만들고 있습니다.'modules/addons'의 설정을 데이터베이스에 저장합니다.

이 부분에는 각 사용자 (사이트라고도 함)에 대해 켜고 끌 수있는 일부 모듈/'addons'이 있습니다. 예를 들어 두 개의 모듈이있을 수 있습니다. Mailchip 뉴스 레터 양식 및 소셜 미디어 공유 버튼. 내가 모듈을 사용하도록 설정/사용하는 사이트를 원하는 경우

내가 다음

id | name      | handler_class 
1 | MailChip     | MailChimpModule 
2 | Social Media Share Buttons | SocialMediaShares 

같은 DB의 테이블을 가지고 생각하고 있었는데, 나는 가입/피벗 테이블에 레코드를 추가합니다.

id | site_id | module_id | config 
1 | 1  | 2   | [] 

여기에서 site_id 1은 두 번째 모듈을 사용할 수 있습니다.

이제 재미있는 부분이 설정에옵니다. 피벗 테이블에 json 배열로 각 모듈에 대한 구성을 저장하는 생각했다. 이렇게하면 각 핸들러 클래스는 필요한 구성 필드의 배열을 지정할 수 있습니다. SocialMediaShares.php에서

예를 들어

저장하거나이 정보를로드 처리하기 위해로드 이벤트/쓰기에있다, 그 다음

protected $settings = [‘FacebookPage’ => ‘’, ‘TwitterPage’ => ‘’]; 

가있을 수 있습니다 파일.

하지만 ... 확실하지 않습니다.

json으로 설정해야합니까, 아니면 각 모듈에 대해 별도의 테이블을 만드는 것이 좋을까요? 그리고 혼란 스러울 것입니다.

누구로부터이 의견을 듣고 싶습니다.

답변

0

DB에 저장되는 구성 옵션이 필요한 것과 비슷한 것을 만들고 JSON을 사용했습니다. JSON은 인코딩/디코딩 + AJAX 조작을 구현할 생각이라면 JS과 매우 친숙한 이며 쿼리/수정/인코딩없이 직접 응답을 보낼 수 있습니다. 추가 표의 구성 데이터 요약하면 구성 옵션에 대한 별도의 테이블은 오버 헤드가 너무 크기 때문에 각 모듈마다 다른 구성 유형이 필요할 때 많은 테이블이 필요하기 때문입니다.

관련 문제