2013-01-17 58 views
1

我需要用兩種語言將數據插入到數據庫中,並且我遇到了一些兩難的問題(數據需要以兩種語言存在)。讓用戶一次插入兩種語言的數據會更好嗎?或者,用戶首先插入一種語言然後插入第二種語言會更好嗎?如果後者更好,那麼最有效的方法是什麼?我怎樣才能展示所有未以兩種語言插入的文章?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