source

여러 값이 포함된 MySQL 열을 외부 키로 사용할 수 있습니까?

nicesource 2023. 6. 23. 22:15
반응형

여러 값이 포함된 MySQL 열을 외부 키로 사용할 수 있습니까?

저는 MySQL을 배우고 있으며 페도라 19에 MariaDB를 설치하고 있습니다.

열 할당의 중복성을 줄이기 위해 열에 여러 값을 포함해야 하는 시나리오가 있습니다.

아래 예제에서 각 값을 다음과 같이 지정할 수 있습니다.tags의 열log테이블 참조tag_id의 란tags테이블?

사용자들

user_id        |
1              |

활동.

activitity_id  |
1

로그.

user_id        |    activity_id    | tags
1              |    1              | 1,3,5 # multiple foreign keys?  

꼬리표

tag_id         |
1              |
2              |
3              |
4              |
5              |

가능하지 않다면, 위의 데이터 시나리오를 기반으로 가장 실현 가능한 솔루션에 대한 논리를 제공할 수 있는 사람이 있습니까?

유사한 질문:

단일 필드에 여러 개의 외부 키를 사용할 수 있습니까?

여러 개의 (조건부) 가능한 값을 가진 MySQL 외부 키

하나의 열을 여러 개의 외부 키로 참조할 수 있습니다.

두 테이블을 연결하기 위해 "중간자" 테이블을 구성하지 않으려면 필드에서 쉼표로 구분된 값을 사용하면 됩니다.find_in_set쿼리를 수행할 때 mysql 함수

find_in_set 사용

SELECT
   log.user_id, log.activity_id, log.tags,
   GROUP_CONCAT(tags.name) as taggedNames //This assumes there is a field called `name` in tags table
FROM
   log
LEFT JOIN tags
ON
   FIND_IN_SET(tags.tag_id,log.tags)
GROUP BY
   log.activity_id

GROUP_CONCAT는 필드를 그룹화하고 구분 기호로 구분합니다. 기본값은,

언급URL : https://stackoverflow.com/questions/17927131/is-it-possible-to-have-a-mysql-column-containing-multiple-values-as-foreign-keys

반응형