Autor Zpráva
Asd3f
Profil *
Ahoj,
vymýšlím jak udělat takovou tu srandu nějnovějších událostí. Uživatel okomentoval článek X, uživatel se spřátelil s uživatelem Y a podobně. Napadá mě udělat tabulku kde by byli indexy na komentář, ohodnocení a podobně a propojit to takto s uživatelem. Vždy bude vyplněn uživatel, objekt události a ostatní pole budou NULL

Existuje nějaké lepší řešení, vidíte nějaké zádrhely v tomto řešení. Bude se jednat o MySQL a PHP
lussaco1
Profil
ja bych udelal tabulku "pratele" kde by byli IDcka vzdy 2 uzivatelu, plus napr datum sprateleni, ... no a okomentovani, jednoznacne tabulku komentaru, IDcko clanku, IDcko uzivatele, komentar, a taky napr datum okomentovani.
Asd3f
Profil *
Jde o to, abych pak mohl zobrazit všechny události naráz. Pak bude potřeba vybrat události k jedinému článku či k uživateli. S tvým návrhem mi to přijde moc komplikované.
Spectator
Profil
Asd3f:
Je to možná komplikovanější na množství tabulek, ale je s tim lepší práce a v budoucnu se tim dá lépe pracovat (např. při rozšíření webu)
Asd3f
Profil *
V případě rozšíření webu stačí přidat sloupec do komplexní tabulky. Nejsem si úplně jistý zda je více tabulek o tolik lepší nápad. Sloupec date by musel mít stejný název, nebo jak by se řešilo řazení?
Spectator
Profil
Vždy řadíš podle sloupce určité tabulky když budeš načítat několik tabulek, vždy vybereš ten sloupec, který je třeba.
Navrhovat pomocí několika tabulek je profesionální řešení, které se používá běžně. Dělat to pomocí jedné velké tabulky lze, ale je to v rozporu s minimalizacemi ať už v databázích nebo objektovém programování. > > > Skládání do jednoho objektu (databáze) nesouvisející atributy.
Asd3f
Profil *
Pořád to zkouším a neni mi to jasné. Vytvořím dvě tabulky např last_comments a last_ratings. Každá tabulka bude mít sloupec pro index na uživatele a tabulku se kterou se váže (last_comments -> comments). Jak nyní z těchto tabulek naráz vyberu nejnovější aktivity a seřadím je?

Děkuji za vysvětlení, případně jednoduchou ukázku

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0