Autor | Zpráva | ||
---|---|---|---|
dunky Profil |
Dobrý den,
přemýšlím, jak takovou věc udělat a zároveň si do budoucna nezazdít možnost fulltextového vyhledávání. Taky je potřeba vzít v úvahu, že výsledné dotazy by se mohly stát neúnosně dlouhé. Zaujali mě varianty, které prezentuje Jakub Vrána, přesto mi ani jedna zcela nevyhovuje. Napadla mě ještě varianta taková, že bych udělal pro každý jazyk jinou tabulku s identickými sloupci např. article_cs, article_en, ... . Odpadl by tím problém s různými kódováními a každá tabulka by měla vlastní fulltext index. Ale přijde mi hloupé mít několik tabulek, které se liší jen názvem. Uznávám, že následující řešení, které jsem vytvořil bez ohledu na fulltext a kódování různých jazyků, je poněkud hloupé. --aritcle CREATE TABLE `article` { `id` int unsigned PRIMARY KEY AUTO INCREMENT, `user_id` int unsigned comment 'reference to author, user->id', CONSTRAINT `article_user_fk` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`), `category_id` int unsigned comment 'reference to category->id', CONSTRAINT `article_articlecategory_fk` FOREIGN KEY (`category_id`) REFERENCES `articlecategory` (`id`) `created` timestamp DEFAULT CURRENT_TIMESTAMP, `hits` int unsigned } CREATE TABLE `articlecontent` { `id` int unsigned PRIMARY KEY AUTO INCREMENT, `article_id` int unsigned, `created` timestamp DEFAULT CURRENT_TIMESTAMP, `headline` varchar(255), `introtext` mediumtext, `fulltext` mediumtext, `language_code` int unsigned comment 'reference to language->code', CONSTRAINT `articlecontent_language_fk` FOREIGN KEY (`language_code`) REFERENCES `language` (`code`) `is_backup` tinyint(1) } CREATE TABLE `articlecontent_backup` { `articlecontent_id` int unsigned, `backup_articlecontent_id` int unsigned, `original_articlecontent_id` int unsigned } CREATE TABLE `articlecategory` { `id` int unsigned PRIMARY KEY AUTO INCREMENT, `title` varchar(200), } --language CREATE TABLE `language` { `code` varchar(6) PRIMARY KEY, `title` varchar(50), `priority` int unsigned } |
||
Kajman Profil |
#2 · Zasláno: 12. 1. 2013, 20:08:03
Jaké problémy s kódováním a indexy máte na mysli v Jakubově řešení s více překlady přímo v tabulce?
|
||
dunky Profil |
#3 · Zasláno: 12. 1. 2013, 23:50:43
Ano přesně o tom mluvím, mysql samozřejmě nedovoluje nastavit jiné kódování pro každy záznam, tudíž moje databázové schéma by mohlo mít problémý s nějakými exotickými jazyky.
|
||
peta Profil |
Unicode je ale univerzalni pro vsechny jazyky.
Pomoci COLLATE si muzes nastavit, jake kodovani pouzijes pri ukladani zaznamu. Ostatne koukam, ze je to oboji v tom jakubove reseni... |
||
Časová prodleva: 4 dny
|
|||
dunky Profil |
Spíš jsem přemýšlel jaké řešení by bylo nejlepší pro efektivní fulltext.
|
||
Časová prodleva: 11 let
|
0