2012-02-12 2 views
0

각 행이 podcast의 에피소드를 나타내는 MySQL 데이터베이스가 있습니다. 각 에피소드마다 쇼 노트를 포함하고 싶기 때문에 PHP를 통해 행당 여러 개의 링크를 추출 할 수 있어야합니다.mysql에서 행당 다중 링크

이 작업을 수행하는 데 가장 적합한 데이터 필드는 무엇입니까? 링크 된 테이블을 통한 링크를 포함하는 것이 이것을 수행 할 수있는 유일한 방법 일 수 있다고 생각하지만, 누군가가 더 간단한 방법을 알고 있다면 그것에 대해 듣고 싶습니다.

+0

당신의 아이디어 수도 아주 잘 : 예를 들어

$links= $row['links']; // your links in row $links_array = explode("," , $links);// now you have an array that you can easily access to each block of it. 

당신이 찾고있는 것. 조금 더 간단하게하려면 에피소드, 즉 단일 행과 연관된 링크 목록을 추가 CLOB 필드로 추가하고 거기에 직렬화 된 배열을 저장하십시오 (PHP 직렬화 또는 JSON 표기법). 당신의 질문은 이러한 링크가 각 에피소드의 설명이나 태그와 같은 것, 즉 같은 페이지로 연결되는 에피소드를 찾을 수 있는지 여부를 원하는지 여부와 같이 다소 모호합니다 ... – dbrumann

답변

1

팟 캐스트 당 링크 수가 유연하기 때문에 새 테이블 (podcast_link)을 사용하는 것이 좋습니다. text 필드를 podcast 테이블에 추가하면 표시하려는 링크의 구문 분석으로 인해 매우 효율적이지 않습니다. 이렇게하면 예를 들어 Podcast 당 링크 수를 계산하면 "관련 링크 표시 (4)"를 표시 할 수 있고 링크를 더 표시 할 수 있으므로 링크를 표시 할뿐만 아니라 링크의 제목도 표시 할 수 있습니다. 특히 앞으로 링크 당 더 많은 정보를 추가 할 수 있습니다.

+0

이것은 확실히 가장 매력적입니다. 나에게. 당신 말이 맞아요, 나중에 확장 기능도 열립니다. – Ryan

+0

PHP에서 몇 개의 링크를 구문 분석하는 것과 JOIN을 사용하여 더 복잡한 MySQL 쿼리를 구문 분석하는 것 사이의 성능 차이는 아마도 존재하지 않는다면 무시할 수있을 것입니다. 또한 PHP 배열을 직렬화/비 직렬화 할 때 링크를 세고 제목을 제공하는 것도 가능합니다. 나는 추가 테이블을 사용하는 것이 미래의 증거이며, 즉 추가 기능을 제공한다는 것에 동의합니다. 어떤 에피소드가 동일한 링크를 가리키는 지 또는 얼마나 많은 에피소드가 링크를 사용하는지 보여 주지만 예제는 추가 필드만으로도 동일하게 수행 할 수 있기 때문에 이점을 표시하지 않습니다. – dbrumann

+1

직렬화 된 배열을 사용하면 매번 전체 배열을 구문 분석 할 필요가 있습니다. 쿼리에서 카운트를 수행하는 대신 카운트를 표시하기 만하면됩니다. 또한 이것은 정규화의 기본 사항으로 데이터를보다 쉽게 ​​액세스하고 사용 가능하며 관리하기 쉽게 만듭니다. "당신의 예제는 이것의 이점을 보여주지 않습니다."- 희망하는 데이터베이스의 모든 기능을 나열 할 것이라고 기대할 수는 없습니다. – Richard

0

explode() 기능 :

당신은이 구조를 예를 들어 당신의 연결을 저장해야

: 데이터베이스 행 http:\\example.com\podcast01.mp3,http:\\example.com\podcast02.mp3,http:\\example.com\podcast03.mp3. 당신이 그들을 추출 할 때

당신은 쉽게 방법을 explode() 기능을 사용할 수 있습니다 :

echo ($links_array[0]);// output : http:\\example.com\podcast01.mp3 

행운

+0

링크 중 하나에 쉼표가 포함되면 어떻게됩니까? – Arjan

+0

이것은 간단한 예입니다! 몇 가지 spacial을 사용할 수있다. 나는 링크 나 링크 사이에'|'를 사용한다. – bizzr3

+0

이것은 좋은 제안이지만 나는 다른 답변 중 하나에서 별도의 테이블 개념을 사용하려고 생각합니다. – Ryan

관련 문제