Diskuze: Ukladanie dlhých reťazcov do databázy
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 12 zpráv z 12.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
Co je to za objekty? Nadřazený objekt čemu? Co je to za DB?
V jednom sloupci nemůže být víc než jeden záznam. Můžeš mít víc
řádků, kde bude např. stejné ID uživatele a jiné ID "objektu", ale
nemůžeš mít v jednom řádku a jednom sloupci víc hodnot...
Ja viem, že v jednom stĺpci riadka nemôže byť viac hodnôt, ale myslel
som to tak, že hodnoty oddelím čiarkou, načítam do poľa (v PHP) a pole
potom rozdelím.
Takže mám to radšej rozdeliť do viac tabuliek?
Napr.
tabuľka 1
| id pouzivatela | ine udaje o nom |
------------------------------------
| ds546sdf4d5f4s | blablabla |
tabulka 2
| id objektu | id podr. obj. | id vlastnika/pouz. | ine udaje |
---------------------------------------------------------------------
| 2dgf6sdhgfh8s6 | d8dfdss5f465fa4 | ds546sdf4d5f4s | blablabla |
Keď dám obejktu "obj1" ID AI a tiež aj objektu "obj2" ID AI, pri ich použití ďalej by sa mi mohli navzájom pobiť. Potrebujem úplne jedinečný typ ID pre každý objekt, aby som zabránil možnej zhode, i keď riziko je malé.
Já teda nevím, ale stále mi nějako uniká důvod proč to chceš hashovat. PHP přiznám se neumím, ale databázový stroj si přeci může sám hlídat unikátnost klíčů a "hlídat" si to sám programově mi příjde jako zbytečná činnost ... asi jsem to co potřebuješ zle pochopil, a nebo to je mou neznalostí technologie.
V jaké to chceš mít databázi?
V databázi bude viac tabuliek.
V jednej zoznam používateľov, druhá bude pre nadradený objekt, v tretej
bude zoznam podradených objektov,...(tabuliek bude istotne viac)
Ak nechám databázu vytvoriť IDy pomocou auto_increment, v jednej, druhej a
vlastne všetkých tabuľkách budú rovnaké IDy a to môže spôsobiť vážny
problém, ak sa tieto IDy stretnú.
// A DB je MySQL.
Můžeš mít tabulek kolik chceš a v každé může být sloupec ID
(auto_increment). Pak máš nějakou spojovací tabulku, kde bude první sloupec
taky ID (aito_increment) a další sloupce budou jako cizí klíče taky ID, ale
budou se brát z těch původních tabulek. Takže o nějakém problému
nemůže být řeč.
Pokud nejde o nějaké tajné ID uživatele, není třeba to ID hashovat.
K těm tvým dvěma tabulkám, co jsi uvedl výše bych přidal jednu
"spojovací, kde by bylo
id_záznamu
id_uzivatel
id_objektu
kde id_záznamu by bylo auto_increment a ostatní by se dosazovaly podle uživatele a objektu z jejich tabulek...
Dik. Nejako to skúsim s tou spojovacou tabuľkou.
Ešte sa predsa opýtam. Ako by si spravil, že používateľ dá objektu napr.odber. Na všetky odbery si mám vytvoriť novú tabuľku?
Nevím, jestli jsem ten "odběr" správně pochopil (jako třeba odebírání novinek, nebo zpráv o produktu), ale udělal bych tabulku, třeba odbery
id_odber(auto_increment)
id_uzivatel
id_objekt
a když si uživatel odběr zaškrtne, nebo nějak zvolí, přidá se záznam do DB do té tabulky "odbery": Když odběr zruší, jednoduše se smaže příslušný záznam...
Hele "spojovací tabulka" je typický příklad vazby M:N ... na to
vygooglíš miliardu článků, tutoriálů a dalších (a vsadil bych boty, že
i tady na to nějaký ten tutoriál bude) .
Zobrazeno 12 zpráv z 12.