Я дал аналогичный ответ в этом вопросе и выделил преимущества этого метода (для меня было бы, например, важно, чтобы приложение определилось с языком и соответственно построило запрос)изменив только параметр lang
в предложении WHERE
SQL-запроса.
Это довольно близко к вашему второму решению. Я не совсем понял "extra_fields", но если это имеет смысл,Вы могли бы (!) объединить ее с таблицей common_data. Я бы посоветовал вам не прислушиваться к первой идее, поскольку таблиц будет слишком много, и будет легко потерять отслеживание элементов в них.
К вашему редактированию: я по-прежнему считаю второй подход лучшим (это мое мнение, поэтому оно относительно;)) Я не эксперт по оптимизации, но я думаю, что при правильных индексах и правильной структуре таблицы скорость не должна бытьпроблема.Как всегда, лучший способ найти самый эффективный способ - это использовать оба метода и посмотреть, какой из них лучший, поскольку скорость будет зависеть от данных, структуры, ....