저는 mysql을 방금 배웠고 mysql이 익숙하지 않습니다. 이제 이런 테이블이 3개 생겼습니다.
기사 테이블
id | 제목 | 콘텐츠 |
---|---|---|
0 | 안녕 | 세상 |
1 | 안녕 | .... |
질문 양식
id | 제목 | 콘텐츠 |
---|---|---|
0 | 안녕 | 세상 |
1 | 안녕 | .... |
태그 테이블
id | 이름 | 아바타 |
---|---|---|
1 | 자바 | .... |
2 | js | .... |
두 테이블 모두 태그 테이블을 공유합니다. 태그 테이블의 아바타는 태그의 아바타입니다. 각 태그에는 자체 아바타 또는 기본 아바타가 있습니다.
현재 궁금한 점은 태그 테이블을 다른 두 테이블과 어떻게 연결하느냐는 것입니다. 태그 ID를 기반으로 기사나 주제를 빠르게 찾을 수 있도록 해야 합니다.
제가 생각한 첫 번째 해결책은 기사 테이블과 질문 테이블 아래에 태그 필드를 추가하는 것이었습니다. 쉼표로 구분해서(좋은지 아닌지 모르겠음...) 그러다가 검색해보니 정말 검색할 줄 모른다는 걸 알게 됐는데... 이렇게 검색하려면 어떻게 해야 하는지... like를 쓰는 걸까. ..
기사 테이블
id | 제목 | 콘텐츠 | 태그 |
---|---|---|---|
0 | 안녕 | 세상 | 0,1 |
1 | 안녕 | .... | 2,3,4 |
질문 양식
id | 제목 | 콘텐츠 | 태그 |
---|---|---|---|
0 | 안녕 | 세상 | 1,4 |
1 | 안녕 | .... | 6,3 |
그럼 두 번째 계획을 생각했는데, 기사 테이블과 질문 테이블의 구조가 기본적으로 동일하기 때문에 병합할 수 있을까요?
질문과 기사 제목의 조합....
제목 | 콘텐츠 | 태그 | 종류 | |
---|---|---|---|---|
안녕 | 세상 | 1,4 | 기사 | |
안녕 | .... | 6,3 | 질문 |
그런 다음 세 번째 계획을 생각했는데, 상관표를 만들어 보면 이 상관표에 ID가 필요한지 잘 모르겠습니다.. 상관표가 있으면 기사와 질문의 표가 되지 않을까요? 다른가요? 태그 필드가 필요합니다.
협회 테이블
태그_ID | |
---|---|
1 | |
6 | |
4 | |
3 |
먼저 주신 기사표와 질문표에 깜놀했습니다... 잊어버리세요 구조도 같고, 데이터도 그대로네요...
둘째, 에서 사이좋게 지내던 솔루션 태그 시작은 바람직하지 않습니다... 태그 수정도 어렵고, 말씀하신 대로 쿼리도 어렵습니다.
기사 테이블과 질문 테이블의 병합은 데이터베이스 설계와 관련하여 전혀 필요하지 않습니다. , 데이터베이스의 패러다임을 이해할 수 있습니다.
마지막으로 연관 테이블 아이디어가 매우 좋고 aq_id 및 tag_id를 사용하는 것도 정확합니다. 미래에 많은 데이터가 있을 수 있다고 말씀하셨는데 걱정하지 마세요. mySql이 채식주의자가 아니라는 점은 말할 것도 없고 데이터가 너무 많다는 문제도 향후 연구에서 해결될 것입니다
처음부터 해결 방법은 태그를 쿼리할 수 있다는 것입니다. 태그의 각 숫자는 기호로 구분됩니다. 예를 들어 1,11,31을 쿼리할 때 태그를 사용할 수 있습니다. '%, 1, %'와 같습니다. 이를 알아낼 수 있어야 합니다.