Zadejte hledaný výraz...

Návrh rozsáhlé databáze + indexy

Dobrý večer,
potřeboval bych prosím vás poradit s rozvržením databáze. S MySQL nejsem zatím moc kamarád, uvítal bych tedy každou pomocnou ruku.
Dejme tomu, že chci spustit projekt zabývající se např. různými slevovými akcemi. Každý provozovatel e-shopu se u mě může zaregistrovat a vkládat svoje slevové akce. Při načtení úvodní stránky, budou vypsány slevové akce v tomto tvaru:
---------------------------------------------------------------
DATUM PŘIDÁNÍ DATUM SKONČENÍ POPIS(ZÁROVEN URL) E-SHOP
---------------------------------------------------------------
Lidé si mohou na úvodní straně filtrovat podle libosti jednotlivé slevy,listovat již skončenými akcemi, vypisovat vše měsíc po měsíci, řadit např. podle data přidání atd...
Můj návrh databáze by se zřejmě skládal ze tří tabulek:
1)UŽIVATELÉ(e-shopy)
- LOGIN
- HESLO
2)AKTUÁLNÍ SLEVY
- PŘIDÁNO
- SKONČENO
- POPIS
- URL
- E-SHOP(stejný název jako LOGIN)
3)SKONČENÉ SLEVY
sem bych přemisťoval již skončené soutěže.
Hlavní problém je, že nemám žádné praktické zkušenosti s indexy. Jak by jste je v tomto případě použily, aby byl přístup k databázi co nejrychlejší?Databáze bude obsahovat cca 10 000 slevových akcí.
Připadá vám rozvržení databáze optimální? Navrhli by jste ji jinak? Napadlo mě taktéž zrušit třetí tabulku a nějakým způsobem již skončené soutěže ve druhé tabulce označit. Ale jak?
Děkuji mnohokrát za každý nápad, kritiku apod.
27. 10. 2007 22:23:52
https://webtrh.cz/diskuse/navrh-rozsahle-databaze-indexy/#reply25600
lukaspulda
verified
rating uzivatele
(24 hodnocení)
28. 10. 2007 15:14:08
Indexy se davaj na pole dle kterych budes vyhledavat.
Proc nedas uzivatelum unikatni id? nemusis pak v tabulce slev parovat podle loginu (textoveho retezce) ale podle cisla, je to rychlejsi.
Pokud bude hledat z tabulky slevy podle schopu tak dej index na login (pripadne na id shopu jak pisu vyse)
atd..
Ale nevim proc myslis, ze se o tom neda na internetu nic najit
http://php.vrana.cz/ukazka-pouziti-indexu.php
http://www.linuxsoft.cz/article.php?id_article=912
28. 10. 2007 15:14:08
https://webtrh.cz/diskuse/navrh-rozsahle-databaze-indexy/#reply25599
lukaspulda
verified
rating uzivatele
(24 hodnocení)
28. 10. 2007 15:18:16
Btw, 10tis řádkl není rozsáhlá databáze :-) .. mysql je primárně určen pro statisíce řádků, postgre pak pro miliony...
A když tak přemýšlim, tak asi u 10tis řádků ani indexy moc nepoznáš
28. 10. 2007 15:18:16
https://webtrh.cz/diskuse/navrh-rozsahle-databaze-indexy/#reply25598
Strzibny
verified
rating uzivatele
(25 hodnocení)
29. 10. 2007 14:19:39
Napsal Martin Korálek;17899
1)UŽIVATELÉ(e-shopy)
- LOGIN
- HESLO
2)AKTUÁLNÍ SLEVY
- PŘIDÁNO
- SKONČENO
- POPIS
- URL
- E-SHOP(stejný název jako LOGIN)
3)SKONČENÉ SLEVY
sem bych přemisťoval již skončené soutěže.
(...)
Připadá vám rozvržení databáze optimální? Navrhli by jste ji jinak? Napadlo mě taktéž zrušit třetí tabulku a nějakým způsobem již skončené soutěže ve druhé tabulce označit. Ale jak?
Tak ta třetí je zde opravdu zbytečná - zvlášť když už máš ve druhé sloupec SKONČENO - už podle něj můžeš určit zda je akce aktuální. Nebo si můžeš přidat ještě sloupec typu Boolean, v MySQL tedy BOOL a ukládat stav, ale přijde mi to trošku zbytečné.
Co se však týče třetí tabulky tak ji taky klidně můžeš nechat, protože pokud by tam bylo opravdu hodně záznamů tak je samozřejmě rychlejší SELECT nad menší tabulkou.
29. 10. 2007 14:19:39
https://webtrh.cz/diskuse/navrh-rozsahle-databaze-indexy/#reply25597
Pro odpověď se přihlašte.
Přihlásit