У меня есть вопросы, которые представлены в моей базе данных SQL следующим образом:
CREATE TABLE IF NOT EXISTS `t_question` (
`id_question` int(10) NOT NULL AUTO_INCREMENT,
`heading_key` varchar(255) NOT NULL,
PRIMARY KEY (`id_question`)
) ENGINE=InnoDB;
Поскольку я хочу, чтобы мои вопросы были мультиязычными, я связываю их ключи с другой таблицей (t_lang_data), в которой хранятся строки для нескольких целей (вопросы, статьи и т. Д.).
Мои данные t_lang_data имеют следующую структуру:
CREATE TABLE IF NOT EXISTS `t_lang_data` (
`id_lang_data` int(10) NOT NULL AUTO_INCREMENT,
`key` varchar(255) NOT NULL,
`lang_iso` int(10) NOT NULL,
`text` varchar(255) NOT NULL,
PRIMARY KEY (`id_lang_data`)
) ENGINE=InnoDB;
Так, например, у меня может быть такой вопрос:
id_question = 1; heading_key =
heading_quest_1
И эти записи lang_data:
id_lang_data = 1; ключ =
heading_quest_1; lang_iso = en_UK;
text = "Заголовок вопроса 1"
id_lang_data = 2; ключ =
heading_quest_1; lang_iso = fr; текст
= "Titre de la question 1"
Мне нужно отобразить эти отношения для Учения 2, но я не знаю, что делать.
Я попытался многие-к-одному и один-ко-многим , но это не работает.
У кого-нибудь есть идея, пожалуйста?
Спасибо
РЕДАКТИРОВАТЬ : Я понимаю, что это даже сложнее, чем я думал. Действительно, моя таблица t_lang_data может хранить строки для многих таблиц, таких как t_questions, t_articles и так далее. Но в сопоставлении кажется, что мы можем сопоставить только две таблицы вместе.
Так как я могу это сделать?