Codeigniter 2.1 - 多语言插入

时间:2013-01-17 23:30:09

标签: php codeigniter codeigniter-2

我需要用两种语言将数据插入数据库,我有一点困境(数据需要存在于两种语言中)。是否最好让用户同时插入两种语言的数据,或者用户首先插入一种语言再插入第二种语言是否更好?如果后者更好,那么最有效的方法是什么呢?如何呈现未以两种语言插入的所有文章?

文章的数据库结构:

所有文章的公共表(相同数据):

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

数据不同的表:

article_info -> article_id | name | text | lang_id

1 个答案:

答案 0 :(得分:2)

如果数据必须以两种语言存在 - 即,应用程序假定如果某个项目存在于一种语言中而不是另一种语言中存在 - 那么您应该设计您的应用程序以便用户必须一次添加它们。

执行数据库写入时,您还应该使用事务。这将确保您的所有写入都成功,或者没有一个成功。它可以防止数据库处于具有一种语言记录而不是另一种语言记录的不确定状态。

查看有关交易的CodeIgniter manual page,了解它们的工作原理。

您还可以使用数据库类中的insert_batch方法一次插入两个记录。我不知道它如何与所有数据库驱动程序一起工作,但mysqli驱动程序将在您使用insert_batch时生成单个查询,因此整个插入将成功或整个插入将失败,类似于事务发生的情况。也就是说,我仍然会在事务块中将对insert_batch的调用包裹起来,只是为了有点偏执和面向未来。