누군가가 체크 박스 검색을 수행 할 때 하나의 열에 여러 변수를 포함 할 수 있습니까?하나의 열에 여러 변수가 있습니까?
음악에 춤을 : 1.Oldies 2.Reggae 3.pop 4.house
와의 테이블이 '이벤트'의 이름으로 거기에 말을하자이 확인란이처럼 가정 해 봅시다 , 열 중 하나가 음악입니다. 누군가가 체크 박스 1,3 또는 4를 선택하면이 행을 반환 할 것이므로 1,3,4를 검색한다고 가정 해 봅시다.
고마워요 :)
누군가가 체크 박스 검색을 수행 할 때 하나의 열에 여러 변수를 포함 할 수 있습니까?하나의 열에 여러 변수가 있습니까?
음악에 춤을 : 1.Oldies 2.Reggae 3.pop 4.house
와의 테이블이 '이벤트'의 이름으로 거기에 말을하자이 확인란이처럼 가정 해 봅시다 , 열 중 하나가 음악입니다. 누군가가 체크 박스 1,3 또는 4를 선택하면이 행을 반환 할 것이므로 1,3,4를 검색한다고 가정 해 봅시다.
고마워요 :)
당신이 설명하는 것은 다 대다 관계입니다. 즉, 많은 이벤트가있을 수 있으며, 각 이벤트에는 여러 스타일의 음악이 포함될 수 있습니다. 반면에, 음악 스타일은 많은 사건에서 나타낼 수 있습니다.
일반적으로 '이벤트'및 '음악'에 대한 도우미 테이블과 두 개의 서로 다른 테이블을 사용하여 이러한 종류의 관계를 표현할 수 있습니다. '이벤트'에는 기본 키 ID가 있고 '음악'에도 불구하고 서로 참조하는 '음악'또는 '이벤트'열에 표시됩니다. 대신 이들 사이에 링크를 설정하려면 'event_id'및 'music_id'열을 포함하는 세 번째 테이블 'Event_Music'을 작성하십시오. 이 예제를 생각해 봅시다 :이 시대에 뒤 떨어진 사람과 팝 이벤트있을 것입니다 만 하우스 음악 이벤트 C를있을 것입니다 있음을 알려줍니다
Table Event
id | name
1 | Event A
2 | Event B
3 | Event C
Table Music
id | style
1 | oldies
2 | reggae
3 | pop
4 | house
Table Event_Music
event_id | music_id
1 | 1
1 | 3
3 | 4
합니다.
위의 내용은 이해하기 쉽습니다. 그러나 테이블을 반환 할 때 -이 때문에 각 이벤트마다 여러 행이 표시됩니까? – pufAmuf
예, 이벤트에 둘 이상의 음악 스타일이있는 경우 Event_Music에 행이 두 개 이상 있습니다. 사용자가 "oldies"와 "pop"을 특징으로하는 이벤트에 대해 1과 3을 선택했다고 가정 해 봅시다. 그런 다음 해당 이벤트를 얻으려면 동일한 event_id를 가진 Event_Music의 항목을 쿼리하고 music_id = 1 인이 event_id와 music_id = 3 인 항목이 모두 있습니다. – emboss
흠, 이상적인 것처럼 보이지 않습니다. 단 하나의 행만 반환됩니다. 각 음악 스타일에 대한 열은 무엇입니까? – pufAmuf
많은 : 많은 데이터베이스 구조를 조사해야합니다. 조사를하고, 테이블을 만들고, 한 발을 내놔. 이것은 데이터베이스의 기본 형태 중 하나입니다.
음악 유형을 별도의 테이블에 넣고 이벤트에서 음악 유형 테이블을 가리키는 외래 키와 열을 만듭니다. 그런 다음 음악 테이블의 PK를 이벤트 테이블에 저장합니다.
당신이 MySQL을 SET
열 유형을 찾고 (적어도 온건 한 방법으로) 생각합니다.
별도의 테이블에서이 작업을 수행하면 [Events_genres]와 같은 이름이되고 [Events] 테이블 기본 키에는 foreign key, [genres] 테이블 기본 키에는 다른 외래 키가 생깁니다. 예를 들어
:
[events_genres]
events_id genre_id
1 1
1 2
1 3
2 3
events_id
표 이벤트의 ID [이벤트]를 genre_id
는 장르 ID는 [장르]에서 (명품, 레게, PHP, ...)이다 표.
이 방법은 효과가 있지만 좋지 않은 아이디어입니다. 이러한 데이터를 표준화해야합니다. 하나의 EventID와 하나의 Music 열이있는 별도의 테이블 musicForEvent를 만들고, 이벤트에 3 개의 음악이 있으면 3 행을 추가하십시오. – Konerak
정상화가 해결책이 아닙니다. 원하는 것은 관계형 모델보다 표현력이 뛰어나므로 NoSQL을 사용하는 것이 좋습니다. – Halcyon
NoSQL, noice를 흉내 내고있는 @Frits! –