2013-01-17 4 views
1

두 언어로 DB에 데이터를 삽입해야하는데 딜레마가 약간 있습니다 (데이터가 두 언어 모두에 존재해야 함). 사용자가 한 번에 두 언어로 데이터를 삽입하는 것이 더 좋습니까? 아니면 사용자가 먼저 한 언어로 삽입 한 다음 두 번째 언어에 삽입하는 것이 좋습니다. 그리고 후자가 더 효과적인 경우 이것을하는 가장 효율적인 방법은 무엇입니까? 어떻게 두 언어로 삽입되지 않은 모든 기사를 제출할 수 있습니까?Codeigniter 2.1 - 다국어 삽입

기사에 대한

DB 구조 :

모든 기사 (동일한 데이터)에 대한

공통 테이블 : 데이터가 다른

**article -> id_article | image | date_created | category_id | subcategory_id** 

테이블 :

article_info -> article_id | name | text | lang_id

답변

2

경우] 데이터 두 언어로 모두 존재해야합니다. 즉, 항목이 하나의 언어로 존재하고 다른 언어에 존재해야한다고 가정하면 응용 프로그램을 디자인하여 한 번에 둘 다 추가해야합니다.

데이터베이스 쓰기를 수행 할 때 트랜잭션도 사용해야합니다. 이렇게하면 모든 쓰기 작업이 성공했는지 또는 둘 다 수행되지 않았는지 확인할 수 있습니다. 데이터베이스가 하나의 언어에 대한 레코드와 함께 불확정 상태에 놓이지 만 다른 언어에 대해서는 레코드가 남아 있지 않도록합니다.

트랜잭션에 대해 CodeIgniter manual page을 살펴보고 작동 방식에 대한 아이디어를 얻으십시오.

데이터베이스 클래스의 insert_batch 메서드를 사용하여 두 레코드를 한 번에 삽입 할 수도 있습니다. 나는 모든 데이터베이스 드라이버에서 어떻게 작동하는지 모르지만, insert_batch을 사용할 때 mysqli 드라이버는 단일 쿼리를 생성하므로 전체 삽입이 성공하거나 전체 삽입이 실패하게됩니다. 즉, 나는 약간의 편집증적이고 장래성이있는 것으로서 트랜잭션 블록에서 여전히 insert_batch으로 전화를 겁니다.

+0

그 사실을 알지 못했습니다. 이렇게하면 많은 시간을 절약 할 수 있습니다. 조언 감사합니다 :) – Sasha

관련 문제