Будет работать в любую сторону.
Если запрашивается статья, у которой в БД ненулевой parent_aid, редирект происходит на статью с нулевым parent_aid. При этом совершенно неважно, на каком языке она была опубликована изначально, и на каком - запрашивается.
Другими словами, aid основной статьи будет указателем на ВСЕ варианты этой статьи, а конкретный язык - выбираться в зависимости от запроса.
enum() - надо менять структуру БД при добавлении языков. Надо постоянно опрашивать структуру БД для определения поддерживаемых языков.
varchar - как защититься от ошибок? Прописывать языки в коде программы? И переписывать код, когда захотелось добавить язык? Уж лучше enum()...
Словарь используемых в БД терминов должен храниться в БД.
AnrDaemon, да, прописывать языки. Не вижу смысла создавать таблицу.
Так можно до абсурда дойти и хранить валидацию в базе, шаблоны в базе, переменные css-препроцессора в базе. А вдруг поменять захотим!