d3.js 트리/덴드로그램에 대한 계층적 JSON을 빌드하기 위해 PHP와 함께 사용하는 MySQL 쿼리가 있습니다.
스키마와 기존 쿼리를 보려면 바이올린을 사용하세요.
program_outcome 데이터O와 유닛 데이터U, development_level 데이터 사이에 다대다 관계인 추가 데이터 관계 D를 추가하는 방법을 고민 중입니다.
아래 사진과 같이 D 3가지 종류만 있습니다.
나에게 필요한 개념도:
각 U은 각 O 중 하나의 D에만 관련됩니다(명확성을 위해 하나의 O 분기만 표시됩니다).
그래서 U는 D의 후손이자 O의 손자여야 합니다. 다른 O 지점의 경우 동일한 U에 D 유형이 같거나 다를 수 있습니다.
바이올린에서 볼 수 있듯이 O과 U 사이의 관계는 현재 조회/관계 테이블 program_outcome_unit_lookup
을 통해 구현됩니다.
또한 조회 테이블을 변경할 수 있으므로 program_outcome_unit_lookup
테이블 대신 두 개의 조회 테이블을 사용할 수 있습니다.
O -> D
->이를 달성하는 방법에 대한 아이디어가 있습니까? 쿼리 이후의 PHP(데이터베이스 바이올린에 없음...)는 다음과 같지만 솔루션과 관련이 없을 수 있으며 이는 본질적으로 데이터베이스 문제입니다. 으아아아
업데이트두 가지 분기로 확장된 개념 다이어그램 보기:
P粉4278776762024-03-30 12:45:05
귀하의 모델은 모든 (고유) 튜플 (O, U)
都被分配了一个强制值 D
인 것 같습니다.
다음에 열을 추가하여 이 모델을 구현할 수 있습니다. program_outcome_unit_lookup
表添加 D
으아아아
또한 기본 키가 될 수 있지만 어느 쪽이든 고유해야 합니다(현재 이 제약 조건을 적용하고 있지 않습니다). (program_outcome_fk, unit_fk)
협회”.U
都可以是任意多个 O
的成员,但根据要求,“每个 U
将仅与每个 D
는 고유 제약 조건을 위반하기 때문입니다. U1
(O1-D2-U1
和 O2-D1-U1
),您可以将值 ((1,2,1),(2,1, 1))
。根据要求,您还不能添加例如O2-D2-U1
에 D
添加一个新表。如果不是每个 O
都允许使用每个 D
(例如,如果不允许 O2
分支使用 D1
),则还需要一个表 (O, D)
를 제공해야 합니다. 그렇지 않으면 필요하지 않습니다.