I've been doing some research about multilingual and recursive database design for few days. I found interesting the following article: http://www.gsdesign.ro/blog/multilanguage-database-design-approach/ and liked the 4th solution Coupled Translation Table Approach. But I'm seriously confused since I don't understand the case; I see there is only one column id on pages table, and I think I need to increase id value firstly on the pages table. After that I must choose id value and add data on the pages_translation table.

The problem is this: how do I know which page corresponds to the value of id? What should I do?

Can you give me some idea about the multilingual and recursive database design approach you're using?

Coupled Translation Table Approach

table languages

id (int)
name (varchar)

table pages

id (int)

table pages_translation

id (int)
page_id (int)
language_id (int)
title (text)
content (text)

pages_translation is the link between the other two tables. Am not quite sure what the problem is. If you add a new page, you use it's id in this table (in page_id). The language_id should be selected from the first table, matching the language of the page.