Autor Zpráva
tester
Profil *
Mám teď chvíli čas a tak přemýšlím nad neobvyklými věcmi. Mám rozdělaný projekt ve kterém návštěvníci budou moci vkládat inzeráty např. do seznamky nebo do bazaru, blogů apod. A taky hledat a procházet pochopitelně. Běžně se používá jednoduchý postup že máte např. tab. users s id sloupce uživatele a relační spojení 1:N s tabulkou např. blogs, kde idb číslo článku v blogu a idu je id uživatele. No a mě napadlo -teoretcky, co kdybych rozdělil uživatele do dvou tabulek (z různých důvodů, do detailů nechci zabíhat). A k tomu bych vytvořil stejné rozdělení i pro ty další tabulky. Výhoda: snadnější a rychlejší zálohování.

Pojmenuji ty tabulky users1 <--> blogs1 a users2 <--> blogs2. Když bych chtěl zazálohovat users2 <--> blogs2, tak je zamknu a zazálohuju. Přitom users1 <--> blogs1 stále jede. Jak je hotovo, odemknu users2 <--> blogs2 a zamknu users1 <--> blogs1 a za zálohuju a pak zas odemknu. Rychlejší zálohování. V případě že by to bylo na SQLlite tak výhoda je o to větší že čas zápisu do tabulek se zkrátí o polovinu, takže uživatel nepostřehne nějaké pomalejší vkládání dat. INSERT by byl jednoduchý a rychlejší protože user1 vkládá do blogs1 a user2 do blogs2.

No ale je tu komplikace při selectu. Obykle stačí jednoduchý příkaz SELECT .. JOIN .. a výsledek je rychle vrácený. Ale v případě takto složité struktury? Jak provést JOIN tak, aby nejdříve hledal idu ve dvou tabulkách a apak vypsal výsledky z obou dvou tabulek a výsledky byly seřazeny podle data od nejnovějších po nejstarší? Nebyl by to problém? Co výkon, zátěž?

Porovnávám obojí, jak mysql tak SQLlite. Co si o tom myslíte?
Alphard
Profil
Joinovat lze i vypočítané tabulky, takže by tam mohl být union, případně by se to celé dalo skrýt do view.
Ale jinak mi to přijde jako hloupost.
tester
Profil *
S tím view jsem kdysi zkoušel pracovat ale už je do dávno tak si vůbec nevzpomínám jak se to dělalo :-( Sakra, měl jsem na to skript který to používal a vůbec nevím v jakém to bylo projektu. Ale ten view asi funguje jen na mysql kdežto já bych chtěl používat hlavně sqllite; chtěl bych aby ty třídy co píšu podporovali obě služby ale používat budu nejspíš sqllite.
Keeehi
Profil
View je vlastně je pojmenovaný select dotaz.

Existují ještě materializované pohledy. Ty ale v mysql a sqlite neexistují. Takže se jimi teď nemusíme zabývat.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: