Správné zacházení s datovým typem SET?
- neznamy_uzivatel
- Člen | 115
Ahoj,
mám trochu problém s datovým typem SET, snad někdo pomůže..
Napřed vysvětlím, o co mi jde:
V aplikaci používám nette database a vyhledávání mám řešené pomocí
sphinx. DB má miliony položek, počítám s desítkami miliónů. Mám asi
10 sloupců, podle kterých potřebuju filtrovat (+ 1 fulltext)
Některé sloupce mohou mít více hodnot (např. několik autorů knihy),
takže sloupec autor může být „Pepa“, nebo „(pepa, honza,
martin)“
Předem neznám jména všech autorů, časem můžu přidat knihu, kde bude
dosud neznámé jméno. Při dotazu na nějakého autora potřebuji nejen
čistě jeho knihy, ale i ty, kde je jen jedním z autorů.
Místo jmen autorů používám jejich INT id
Nakonec bych to rád dostal do sphinxu – sql_attr_multi
Předpokládám, že je to řešitelné právě pomocí datového typu SET, bohužel se mi ho nedaří použít. I když dám v phpMyAdmin vytvořit nový sloupec typu SET, skončí to špatnou syntaxí.
např.
ALTER TABLE `dtsettest` ADD `autor_set` SET NOT NULL
vypíše:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NOT NULL' at line 1
To stejné i když za SET definuju nějaké hodnoty.
Otázka tedy je, jak správně tohle filtrování řešit a jak správně použít SET?