my $sth = $dbh->prepare(' SELECT * FROM post_translations JOIN posts ON post_translations.post_translation_id = posts.post_translati +on_id JOIN languages ON post_translations.lang_id = languages.lang_id WHERE posts.post_id = ? AND languages.lang_name = ? '); $sth->execute($post_id, $language_name);
Pardon any syntax errors.
How would I use the `post` table with an auto_increment field `post_id` and only 1 field `post_translation_id` to have more than one translation per post?
You woulnd't. You'd fix my bug :)
If you wanted to have it autoincrement,
CREATE TABLE `languages` ( `lang_id` TINYINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `lang_name` VARCHAR(60) NOT NULL ); CREATE TABLE `post_translations` ( `post_translation_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT PRI +MARY KEY, `post_translation_cat` INT(11) UNSIGNED NOT NULL, `post_translation_date` DATETIME NOT NULL, `post_translation_title` VARCHAR(255) NOT NULL, `post_translation_body` TEXT NOT NULL, `post_translation_lang` TINYINT UNSIGNED NOT NULL ); CREATE TABLE `posts` ( `post_id`, INT(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, ); CREATE TABLE `post_to_translation` ( `post_id`, INT(11) UNSIGNED NOT NULL, `post_translation_id` INT(11) UNSIGNED NOT NULL, );
Update: Since it's an 1:N and not N:N relationship, post_to_translation is not necessary.
CREATE TABLE `languages` ( `lang_id` TINYINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `lang_name` VARCHAR(60) NOT NULL ); CREATE TABLE `post_translations` ( `post_id`, INT(11) UNSIGNED NOT NULL, `post_translation_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT PRI +MARY KEY, `post_translation_cat` INT(11) UNSIGNED NOT NULL, `post_translation_date` DATETIME NOT NULL, `post_translation_title` VARCHAR(255) NOT NULL, `post_translation_body` TEXT NOT NULL, `post_translation_lang` TINYINT UNSIGNED NOT NULL ); CREATE TABLE `posts` ( `post_id`, INT(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, );
In reply to Re^3: [OT] Database Design
by ikegami
in thread [OT] Database Design
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |