IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Struktura databáze

Aktivity
Avatar
Vojtěch
Člen
Avatar
Vojtěch:28.9.2014 15:47

Pracuji na systému v PHP a MySQL a potřeboval bych nějak zařídit, aby každý uživatel (pravděpodobně jich bude hodně) měl v databázi uložené informace o svých "followerech". Prostě o lidech, které sleduje. Ovšem nevím jak na to jít, aby to bylo funkční, rychlé a přehledné. Je vhodné mít pro každého uživatele tabulku, nebo mít jednu tabulku s user_id a id toho, koho sleduje? Nebo se to dělá ještě jinak?

Děkuji.

 
Odpovědět
28.9.2014 15:47
Avatar
Pavel Mareš
Tvůrce
Avatar
Pavel Mareš:28.9.2014 16:04

"pro každého uživatele tabulku" - Není vhodné, no vlastně je to blbost a vůbec, je to ničemu.
Trochu ti to rozeberu, ačkoliv bych neřekl, že je to obzvlášť těžké, stačí, když se podíváš na obrázek přiložený k mému komentáři, ale také ti to popíši.

Vytvoříš si 2 tabulky, ve kterých budeš mít data - tabulka pro Uživatele a pro "Follow"
(moje tabulky mají předpony tbl, jen pro lepší přehled)

  1. tabulka - tbl_User
    • máš zde základní data o uživateli: ID, jméno, heslo, atd atd
  2. tabulka - tbl_Follow
    • zde si ukládáš všechny údaje o tom kdo koho "sleduje"
      • tzn. ID pro každý řádek, Kdo (uživatel který klikl na tlačítko sledovat) a Koho (jakému uživateli klikl na tlačítko sledovat) atd atd (například kdy na to tlačítko klikl atp)

Snad jsem to napsal dost jasně. Pokud něčemu nerozumíš, nebo chceš pomoct, napiš do PM nebo odpověz na můj komentář, nemusel bych si toho totiž všimnout.

Editováno 28.9.2014 16:06
Akceptované řešení
+20 Zkušeností
Řešení problému
Nahoru Odpovědět
28.9.2014 16:04
Však ono půjde ...
Avatar
Martin Konečný (pavelco1998):28.9.2014 16:21

Dělat tabulku pro každého uživatele určitě ne. Dle mě nejlepší způsob je udělat tabulku, která bude obsahovat ID uživatelů (kdo sleduje a koho sleduje).
V tabulce může být unikátní klíč složený právě ze sloupců 'ID kdo' a 'ID koho'.

Nahoru Odpovědět
28.9.2014 16:21
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Vojtěch
Člen
Avatar
Odpovídá na Pavel Mareš
Vojtěch:28.9.2014 16:24

Děkuji moc. Tvoje možnost mě taky napadla, ale nevěděl jsem, jestli to je to správné řešení.

Ještě jedna taková otázka (nechce se mi kvůli tomu otvírat nové vlákno). Dá se to aplikovat třeba i na funkci "Líbí se mi"? Like/Dislike? Aby uživatel nemohl hlasovat hodnotit víckrát atd.

 
Nahoru Odpovědět
28.9.2014 16:24
Avatar
Pavel Mareš
Tvůrce
Avatar
Odpovídá na Vojtěch
Pavel Mareš:28.9.2014 16:58

Prakticky ano, ale v nějakých složitějších apkách bych to udělal trochu unikátnějším způsobem. Ale ano, v podstatě stačí nahradit slovo Follow za Like (Like jako název tabulky je špatný nápad kvůli tomu že like je v sql dotazu, ale jen pro ukázku použijeme Like jako název tabulky). V tom případě tam nebude Koho ale Co. Sloupec "Co" bude obsahovat ID likenutého komentáře/příspěvku či čehokoliv. Btw názvy sloupců a tabulek co zde píši jsou zvoleny pro přehlednost, doporučuji si promyslet názvy sloupců, pokud někdy budeš rozšiřovat tabulky atp.

Nahoru Odpovědět
28.9.2014 16:58
Však ono půjde ...
Avatar
Vojtěch
Člen
Avatar
Odpovídá na Pavel Mareš
Vojtěch:28.9.2014 17:11

V PHP a MySQL se už nějaký čas pohybuju a vyznám se v tom, takže nemusíš vše opodstatnit. Jen jsem nikdy nedělal v MySQL žádné velké projekty, pouze nějaké uživatele a tak. Takže mě spíš u tohoto jen zajímala struktura. Nemohl bys mě třeba někam nasměrovat, kde bych se dočetl třeba o tom lajkování, nebo o složitějších strukturách databází?

 
Nahoru Odpovědět
28.9.2014 17:11
Avatar
Pavel Mareš
Tvůrce
Avatar
Odpovídá na Vojtěch
Pavel Mareš:28.9.2014 17:46

No nasměrovat je těžký a ukázat na nějaký trochu lepší projekt ti moc nepomůže. Spíše bych si být tebou vymyslel nějaký malý projekt na kterém bys propojil více jak 5 tabulek mezi sebou. Nám ve škole po pár měsících "programování" řekli udělejte databázi CDček. To vypadá tak, že máš album a v tom skladby + jejich časy atp atp. Prostě nejlépe se to naučíš na praxi, na vlastním projektu, prostě cokoliv. Fantazii se meze nekladou. Btw i zde na ITnetwork najdeš pár tutoriálů, což byli dříve i projektu do soutěží.

Nahoru Odpovědět
28.9.2014 17:46
Však ono půjde ...
Avatar
Odpovídá na Vojtěch
Neaktivní uživatel:28.9.2014 19:15

Niečo o tvorbe vecí ako ako je práve lajkovanie a "followovanie" je celkom dobre spravené tu: https://www.youtube.com/howcode
Veľa som to nepozeral ale kamoš hovoril, že je to užitočný návod.

Nahoru Odpovědět
28.9.2014 19:15
Neaktivní uživatelský účet
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.