mysql - 하나의 테이블과 여러 테이블 사이에 다대다 관계가 있습니다. 어떻게 디자인합니까?
PHP中文网
PHP中文网 2017-06-06 09:52:18
0
7
885

최근 하나의 테이블과 여러 테이블에 관련된 문제가 발생했습니다.

예: 이제 응용 프로그램 테이블 app_table이 있고 많은 재료 테이블 Material_table1, Material_table2...
각 재료 테이블에 대해 하나의 재료가 여러 응용 프로그램에서 사용될 수 있고 하나의 응용 프로그램이 여러 재료를 사용할 수도 있습니다. 각 재료 테이블과 적용 테이블은 이러한 관계를 가지며, 각 재료 테이블 사이에는 연관성이 없습니다.

분명히 다대다 방식이지만 문제는 다대다 방식으로 테이블을 생성할 경우 소재 테이블마다 중간 테이블을 생성해야 한다는 점이다.

이제 응용 프로그램 테이블에 필드를 추가하고 각 자료에 대한 필드를 추가하는 아이디어가 생겼습니다. 필드는 이 앱이 소유한 자료
의 ID를 쉼표로 구분하여 저장합니다. 하지만 문제는 이 경우 두 번 쿼리해야 한다는 것입니다. 먼저 애플리케이션 테이블의 필드를 통해 필터링한 다음 조건에 따라 쿼리된 데이터를 필터링해야 합니다.

더 좋은 계획이나 아이디어가 있으신지 모르겠네요 다들 감사합니다


설명이 좀 불분명합니다. 각 재료 카테고리(재료 테이블)에는 인터페이스가 있지만 재료를 반환할 때 응용 프로그램에 따라 필터링해야 하며 여러 재료(a)를 사용하는 응용 프로그램이 있습니다. 재료 표) 여러 재료), 하나의 재료를 여러 응용 프로그램에서 사용할 수 있습니다. 현재는 각 자재테이블에 구분을 위한 적용분야가 추가되어 있는 상태인데, 이를 위해서는 많은 항목 추가가 필요합니다. 그래서 적용 테이블을 만들까 고민하다가, 소재별 연관 테이블을 만들게 되었습니다. 이런 방식으로 요청을 할 때 먼저 요청 매개변수의 애플리케이션 이름을 기반으로 애플리케이션 테이블에서 데이터를 조회한 다음 연관을 기반으로 관련 재료 테이블에서 적합한 데이터를 조회할 수 있습니다.
더 좋은 방법이 있는지 모르겠습니다.

PHP中文网
PHP中文网

认证0级讲师

모든 응답(7)
阿神

우선 테이블 구조 디자인에 뭔가 문제가 있습니다. 여러 자료, 이력서에 여러 자료 목록이 필요한 이유는 무엇입니까? 재료 유형을 사용하여 구별할 수 있습니다.
재료를 왜 테이블로 나누려고 하는지 모르겠네요. 그렇다면 테이블은 종류가 달라서 그런 것 같아요

app 적용 테이블app 应用表
material 素材表
material_type 素材类型
app_materialmaterial 소재 테이블

material_type 소재 유형🎜app_material 소재 적용 관계 테이블🎜
漂亮男人

연결 테이블이 하나만 필요한 것 같아요:

Association table
Application ID 재료 테이블 ID Material ID
01 07 08

애플리케이션에서 어떤 재료가 사용되는지 확인할 수 있습니다

世界只因有你

불평: 다대다의 출처는 어디입니까? 각 재료 테이블의 필드는 다릅니다. 응용 테이블은 특정 유형의 재료 테이블(재료 테이블의 요소)과 다대다 관계를 가지고 있지만 응용프로그램 테이블은 모든 재료 테이블과 다대다 관계가 아닌, 포함과 비포함의 관계입니다.

伊谢尔伦

먼저, 귀하의 아이디어에 따르면 데이터 테이블이 매우 크고 향후 유지 관리가 어려울 것입니다. 자료의 속성을 json으로 변환하거나 저장을 위해 직렬화하는 것이 좋습니다.

某草草

일대다 관계의 경우 일반적으로 중간 테이블을 사용하며, 일대일 관계의 경우에만 관계를 나타내는 열이 추가됩니다

Peter_Zhu

A A_ID A_OTHER
B B_ID B_OTHER
C C_ID C_OTHER
REF REF_ID(序列) A B C D E …

으아악

巴扎黑

앱_ID | 재료_테이블_이름 |

키워드, 다형성 연관

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!