찾다

 >  Q&A  >  본문

mysql - 하나의 테이블과 여러 테이블 사이에 다대다 관계가 있습니다. 어떻게 디자인합니까?

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

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

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

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

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


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

PHP中文网PHP中文网2773일 전925

모든 응답(7)나는 대답할 것이다

  • 阿神

    阿神2017-06-06 09:54:18

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

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

    material_type 소재 유형🎜app_material 소재 적용 관계 테이블🎜

    회신하다
    0
  • 漂亮男人

    漂亮男人2017-06-06 09:54:18

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

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

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

    회신하다
    0
  • 世界只因有你

    世界只因有你2017-06-06 09:54:18

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

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-06-06 09:54:18

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

    회신하다
    0
  • 某草草

    某草草2017-06-06 09:54:18

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

    회신하다
    0
  • 天蓬老师

    天蓬老师2017-06-06 09:54:18

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

    으아악

    회신하다
    0
  • 巴扎黑

    巴扎黑2017-06-06 09:54:18

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

    키워드, 다형성 연관

    회신하다
    0
  • 취소회신하다