1

我需要用两种语言将数据插入数据库,我有点进退两难(数据需要以两种语言存在)。让用户同时插入两种语言的数据更好,还是让用户先插入一种语言然后再插入第二种语言更好?如果后者更好,那么最有效的方法是什么?我如何展示所有未以两种语言插入的文章?

文章的数据库结构:

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

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

数据不同的表:

article_info -> article_id | name | text | lang_id

4

1 回答 1

2

如果数据必须以两种语言存在——即,应用程序假设如果一个项目以一种语言存在,那么它必须以另一种语言存在——那么你应该设计你的应用程序,以便用户必须同时添加它们。

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

查看有关事务的CodeIgniter 手册页,了解它们的工作原理。

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

于 2013-01-17T23:43:03.320 回答