Dashboardy užívateľa – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Dashboardy užívateľa – MySQL – Fórum – Programujte.comDashboardy užívateľa – MySQL – Fórum – Programujte.com

 

Codemaster0
Návštěvník
8. 11. 2016   #1
-
0
-

Zdravím. Robím jeden projekt, v skratke vysvetlím, ohľadom čoho sa táto dilema týka. Mám užívateľa, ktorí sa prihlási do administrácie. Zobrazí sa mu nejaký dashboad, ktorý si sám upraví podľa toho čo tam chce mať. Avšak, akurát pridávam do systému možnosť viacerých dashboardov. Užívateľ má vlastnú tabuľku v db. Čo je podľa vás lepšie, vytvoriť dalšiu tabuľku na dashboardy, kde v každom bude unikátne id používateľa? Alebo to zapísať do stĺpca napr: Dashboards, kde by string bol formulovaný cca takto: "nazov dashboardu:plugin 1,plugn 2,plugin 3 ... plugin N;" .... čiže by bol každý dashboard oddelený delimetrom ";" a automaticky pri zadávaní názvu by sa prednastavilo, aby užívateľ nemohol zadávať určité znaky? 

Ďakujem za odpoveď.

Nahlásit jako SPAM
IP: 85.135.188.–
Kit+15
Guru
8. 11. 2016   #2
-
0
-

#1 Codemaster
Na delimitery v databázi raději zapomeň. Porušil bys 1NF.

Založ si další tabulku dashboard(id, user_id, name);

Možná ještě tabulku plugin(id, dashboard_id, name);

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Codemaster0
Návštěvník
8. 11. 2016   #3
-
0
-

Ďakujem moc. Idem to povytvárať. Lebo som mal dilemu ohľadom tohoto. Takže ak má jeden napr user viac napr pluginov alebo správ, vždy ako nová tabuľka a nový riadok? 

Nahlásit jako SPAM
IP: 85.135.188.–
Kit+15
Guru
8. 11. 2016   #4
-
0
-

#3 Codemaster
Ne, pouze nové řádky v tabulce plugin. Jeden plugin, jeden řádek. Pro všechy uživatele dohromady pouze jedna tabulka plugin.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:b842:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Codemaster0
Návštěvník
8. 11. 2016   #5
-
0
-

#4 Kit
Áno tak som to myslel. Zoskupiť kvázi itemy, ktoré by boli nuté oddelovať delimetrom a dať ich ako nový riadok. Čiže ak si jeden na dash nahádže 10 pluginov, 10 riadkov sa vytvorí. Pri 2hom užívatelovi to isté do tej istej tabulky a vytvorí sa ako keby strom dát, ktoré su rozdelené podľa unikátneho ID užívateľa a podľa toho načítavané.

Nahlásit jako SPAM
IP: 85.135.188.–
Kit+15
Guru
8. 11. 2016   #6
-
0
-

#5 Codemaster
Pokud bys to chtěl mít elegantní a bezpečné, můžeš mít tabulky user a plugin. Mezi nimi uděláš vazební tabulku M:N user_plugin(user_id, plugin_id). Ta ti zároveň zajistí, že žádný uživatel nebude mít 2 stejné pluginy a uživatel si nebude smět zadat jiný plugin než povolený.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:b842:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Codemaster0
Návštěvník
8. 11. 2016   #7
-
0
-

#6 Kit
To netreba. Fixne bude v DB nazov pluginu a k nemu cesta. To bude tabulka pluginov v ponuke. User si vyberie, takže rovnaké budú môcť mať, len ak budu niektoré platené samozrejme užívateľ A nebude mocť mať plugin, ktorý si zaplatil užívateľ B. Neviem či tu by bolo potrebné spraviť tie väzby dalšiou tabulkou a zoskupiť tak všetky idčka. 

Nahlásit jako SPAM
IP: 85.135.188.–
peter
~ Anonymní uživatel
3714 příspěvků
9. 11. 2016   #8
-
0
-

Codemaster "To netreba."
Hele, tak ja bych do toho rozhodne sel, jak pose Kit.

user (id_user, name)
plugin (id_plugin, name)
user_plugin (id_user, id_plugin)

"užívateľ A nebude mocť mať plugin, ktorý si zaplatil užívateľ B."
Tohle mi spis nedava smysl. Proc by mel mit kazdy uzivatel unikatni pluginy? Tak muzes mit v tabulce user_plugin sloupce actived true/false, purchased true/false. Jakoze uzivateli pridas vsechny pluginy, jen mu poznacis, ktere ma koupene a ktere aktivovane. Pri dotazu pak ale zkontrolujes oboje hodnoty, aby se nestalo, ze neco nema koupene, ale ma to aktivovane :) 1.000.000 radku pri spravnem indexovani nema vyznamny vliv na rychlost. To si muzes zkusit na Firefox, http://mlich.zam.slu.cz/…sorting2.htm, vol si tam n = fast 3, alg = fast3 a milion polozek to vysortuje za chvilku. Provede to kolem 20 mil operaci, 0.3s. A to je pomaly js. Takove rychle sql s integery nema problem. Jestli ti jde o pocet radku v db

A vypsat pluginy na radek, to taky jde (mysql)

SELECT
  person_id, 
  GROUP_CONCAT(hobbies SEPARATOR ', ')
FROM
  peoples_hobbies
GROUP BY
  person_id
Nahlásit jako SPAM
IP: 2001:718:2601:26c:85cb:f2...–
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, 6 hostů

 

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