2012-11-22 2 views
0

일부 MySQL 관계를 정의하려고합니다.MySQL 대 다수 대 json

 employee: 
    | id | first_name | last_name | email 

    notifications: (notification names are email, post etc) 
    | id | name    | description 

    employee_notifications: 
    | id | employee_id | notification_id | 

어떤 장점 (혹은 단점)로 json_encode를 사용하여 하나의 행에서 직원의 모든 알림 ID를 삽입 할 employee_notifications 테이블 변경에 있는가 : 아래 주어진 내가 3 개 테이블이?

지금까지 100 명의 직원과 6 가지 알림 방법이 있습니다.

+1

mysql 태그와 php 태그를 제거하는 것이 좋습니다. 이것은 일반적인 관계형 데이터베이스 설계 질문입니다. – SAJ14SAJ

답변

2

json_encode를 사용하여 직원의 모든 알림 ID를 한 행에 삽입하도록 employee_notifications 테이블을 변경하면 어떤 장점 (또는 단점)이 있습니까?

상당한 단점이 있습니다. 현재 설정을 사용하면 직원이 어떤 알림을 받았는지 또는 특정 알림을 구독하는 직원을 쉽게 찾을 수 있습니다. JSON을 직원 테이블에 넣으면이를 수행 할 수있는 기능이 제거됩니다.

+0

JSON에 대한 전문 검색은 어떻게됩니까? –

+2

@JanDvorak ID가 "123"이면 "1234"를 찾을 수 있습니다.) – ceejayoz

+1

또한 중지 단어 나 단어가 아닌 단어 또는 짧은 단어는 검색 할 수 없습니다. 전체 텍스트 검색은 코드를 읽도록 설계되지 않았습니다. 또한 구조 부재 - 특정 설명이 포함 된 이메일을 검색하려는 경우 관련없는 이메일이 첨부 된 사용자의 게시물에 대한 설명을 찾을 수 있습니다. – Amadan

1

동안 항상 완벽한 접근 방식도 모든 상황에서 적용 가능한, 시간이 지남에 좋은 유지 보수를위한 엄지 손가락의 좋은 규칙 :

사용 (나는 완전히 말을하지 않습니다 물론 정규화 가끔 너무 멀리 가고 있기 때문에)를 사용하고 뷰, 저장 프로 시저 또는 코드 합성 데이터 개체를 사용하여 해당 데이터의 최적화 된 사용보기를 만듭니다.