2013-01-04 1 views
1

더 정확하고 전문적인 방식으로 테이블을 만들려고합니다.언어에 대한 여러 열 대 하나의 열에있는 직렬화 된 배열

2 개 언어에 대해 두 개의 필드 TITLEDESCRIPTION이 필요하지만 잠시 후에 제 3 언어를 추가하지 않을지는 확실하지 않습니다.

어느 것을 원하십니까?

----------------------------------------------------------- 
id | title_en | title_ge | description_en | description_ge 
----------------------------------------------------------- 
...|..........|..........|................|................ 
----------------------------------------------------------- 

또는

--------------------------- 
id | titles | descriptions 
--------------------------- 
...|serialized| serialized 
--------------------------- 

어디 직렬화이

array(
'en' => 'title for english', 
'ge' => 'title for georgian' 
) 

또는 어떤 다른 제안처럼? 장래의 권장에 감사드립니다.

+1

당신은 하나 개의 언어에 특정 제목이나 설명을 검색 할 수있는 같은 요구 사항이 있습니까? – datasage

+0

예, FULLTEXT 색인 – Davit

+0

을 통해 다른 표 (예 : 언어)를 만들고 표를 변경해야합니다 : id, title, description, language_id. 이렇게하면 테이블을 변경하지 않고 원하는만큼의 언어를 추가 할 수 있습니다. –

답변

2

두 테이블을 조합하여 사용합니다.

첫 번째 표에는 영어로 된 제목과 설명이 포함되어야합니다. 지금 당장 가지고있는 것과 비슷합니다.

보조 테이블에 번역이 포함됩니다.

----------------------------------- 
doc_id | lang | title | description 
----------------------------------- 

doc_id 및 lang 및 전체 텍스트 색인을 제목 및 설명에 포함하는 기본 키를 넣습니다.

이 방법을 사용하면 찾고자하는 언어에 대한 번역이 존재하지 않을뿐만 아니라 특정 언어 또는 다른 언어로 검색을 제한하는 경우 원본 영어 텍스트로 대체 할 수있는 쿼리를 작성할 수 있습니다.

+0

오케이, 생각 해봐. 시간 내 주셔서 감사합니다. 나는 대답을 가능한 빨리 받아 들일 것이다. – Davit

1

나는 네 개의 필드 (ID, 제목, 설명, 언어)로 테이블을 만들 것

-------------------------------------- 
id | titles | descriptions | language 
--------------------------------------- 
1 |title in en| desc in en | en 
---------------------------------------- 
2 |title in ge| desc in ge | ge 
+0

나는 그런 부스러기가 좋다고 생각하지만 실제로 'file'이라는 또 다른 열이있어 파일이 두 줄로 중복되어야합니다. 나는 아직도 그것을 생각할 것이다. 감사! – Davit

관련 문제