Návrh tabulky pro měnící se kategorie – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Návrh tabulky pro měnící se kategorie – MySQL – Fórum – Programujte.comNávrh tabulky pro měnící se kategorie – MySQL – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Petr
~ Anonymní uživatel
696 příspěvků
25. 9. 2011   #1
-
0
-

Pěkný den, mám celkem složitý dotázek, budu doufat, že mi nějaká dobrá duše poradí. Co se týče navrhování DB jsem samouk a v podstatě ještě začátečník. Dříve jsem si vždy věděl rady, ale nyní mám před sebou zvláštní problém. 

Moje aplikace bude sloužit k zapisování výsleedků nějaké činnosti ke konkrétnímu člověku. Vždy jednou za týden udělám "test" všech zaměstnanců v nějakých činnostech a jejich výseldky budu uchovávat. Předem budu mít v aplikaci nejaké 4 činnosti. Každou činnost provádí nějaký člověk. Tady by to bylo jednoduché... udělám si tabulku a sloupce budou jednotlivé činnosti + jeden sloupec na osobu která činnost provedla.  pak v řádce budu mít dejme tomu : [Petr, 100, 132, 142, 98], kde ta čísla budou představovat moje výsledky.

Jenže se mi stane(a vím že se to stane párkrát do roka), že přibude (nebo i ubude) činnost. to znamená, že bych jednou potřeboval zapsat výsledek "testu" se 4mi činnostmi a jedno s 6ti činnnostmi. 

Potřeboval bych poradit, jak takové tabulky navrhnout nejlépe. Mě napadla jenom 2 řešení, která se mi nezdají uplně ok co se týče velikosti dat. 

Díky za každou odpověď, Petr.

Nahlásit jako SPAM
IP: 81.201.60.–
Reklama
Reklama
null_while
~ Moderátor
+6
Věrný člen
25. 9. 2011   #2
-
0
-

Na každou činnost vytvoř tabulku, ve které uchovávej ID, UID, čas a datum + výsledek. V PHPMyAdminu to nebude přehledné, proto budeš muset použít nějaký výpis.

ID bude primární, automaticky zvětšované, int. 
UID bude rovno uživatelovi ID.

Pokud tedy někdy doplníš činnost stačí jen přidat tabulku, pokud ji nebudou využívat všichni, stačí když se bude moc zápis rovnat null. 

Nahlásit jako SPAM
IP: 84.16.103.–
Webnia.cz - tvorba webových stránek
Petr
~ Anonymní uživatel
696 příspěvků
25. 9. 2011   #3
-
0
-

#2 null_while
díky za radu, jen přemýšlím jak pak ta data vytáhnout, protože představa je taková, že buďto si nechám zobrazit celej jeden test ( to znamená všechny lidi, kteří daný den dělali test) a pro všechny lidi vypíše ty hodnoty. A jde mi o to, jak zjistim, který všechny činnosti se daný den testovali?

Nahlásit jako SPAM
IP: 81.201.60.–
null_while
~ Moderátor
+6
Věrný člen
25. 9. 2011   #4
-
0
-

Jednoduše. Při výpisu uživatele - každého zvlášť určitě přenášíš jeho ID, jméno nebo něco. Tak, aby si mohl zjistit výsledek daného uživatele - nebo ho při získávání výsledků zadáváš (např. do formulářů). Takže stačí, aby si dané id použil i ve výpisu SQL dotazu na další tabulky: 


$id = (int) $_POST['id'];
$insertSQL = "SELECT * FROM cinnost2 WHERE uid=$id LIMIT 0,1;

nezapomeň zabezpečit vstupy, jen jsem napsal rychle, jako získáš výsledek.

Nahlásit jako SPAM
IP: 84.16.103.–
Webnia.cz - tvorba webových stránek
Petr
~ Anonymní uživatel
696 příspěvků
26. 9. 2011   #5
-
0
-

#4 null_while
jj, ale já přece nebudu vědět, kolik tam mám tabulek cinnost1, cinnost2, cinnost3...... cinnostx. jak zjistim, ve kterejch tabulkách se mi nachází výsledky z toho dne... třeba sem zrovna ten den cinnost2 nedelal. Ten den sem dělal dejme tomu c1 a C2 a v programu budu chtí aby se mi ukázala tabulka a tam jenom slouce jmeno ,cinost1, cinost3... a pod tím seznam lidí a výsledky. ale když si nechám vypsat třeba výsledky z jinyho dne, kde se dělalo víc činností, tak tam bych chtěl aby se mi zase zobrazili všechny... 

Nahlásit jako SPAM
IP: 81.201.60.–
null_while
~ Moderátor
+6
Věrný člen
27. 9. 2011   #6
-
0
-

Však a co tomu brání, pokaždé budeš mít nějakou podmínku, kterou budeš chtít použít (implementovat). Takže stačí, vypsat např. ze dne ##.##.#### výsledky, které nejsou prázdné od posledních ## uživatelů. 

Nahlásit jako SPAM
IP: 84.16.103.–
Webnia.cz - tvorba webových stránek
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 12 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý