Diskuze: Parcialita v MySQL
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 11 zpráv z 11.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.


Když povolíš NULLový, tak to normálně funguje. JEslti ti to nejde, tak tam máš nějaký vadný záznam, který má takový klíč, který se jako primární klíč v druhé tabulce nevyskytuje.
Foreign key musi byt uplne rovnaky typ ako index na ktory ho chces
naviazat.
Taktiez by mal byt null.
a nezabudni ho spravit aj unsigned ak to davas na klasicky numericky primary
key.
Dotaz - proč unsigned? Já si nikdy nezvykl dávat polde ID jako unsigned int. Mám pocit, že jsem někde naopak četl, že to může dělat problémy.
Ty si někdy dával jako identifikator záporný číslo? 
auto increment je standardne 1 ak si ho nenastavis na ine (pozitivne) cislo. Taktiez sa neda v SQL nastavit negativne autoincrement. Dokonca nevidim zmysel preco. Phpmyadmin nepouzivam ale ine SQL klienty ti tam automaticky nastavia unsigned, aby si vedel ulozit viac riadkov.
Dovod? Ak mas integer id tak max hodnota je 2,147,483,647. Dve miliardy zapornych hodnot na id nikdy nevyuzijes. Ale s unsigned vies ulozit vyse 4 miliard moznych riadkov do tabulky.
Z toho dovodu, casto ked mi nejde nastavit foreign_key tak je problem prave unsigned.
Já vím, že díky unsigned se zvýší maximální kladná hodnota, ale
myslím, že jsem někde četl, že se to i přes to nedoporučuje, protože to
může dělat v něčem problémy.
Bohužel si už nepamatuji, kde jsem to četl, takže odkaz nemohu poslat.
Já naopak snad ani v žádných řešeních neviděl při vytváření tabulky, aby ID bylo unsigned, proto se ptám.
V podstatě by se s tím dalo souhlasit, ale upřímně: dokážeš si představit tabulku, kde jsou 4 miliardy záznamů? Abych pravdu řekl, já si nedokážu představit ani ty dvě miliardy, jak by se s tím pracovalo...
http://www.statisticbrain.com/…-statistics/ fejsbuk ma
1.3mld pouzivatelov treba sa fejsbuku opytat ci ich maju v autoincrement tabulke
s unsigned, alebo uz o par rokov nebudu mat kde davat novych zakaznikov. 
Pointa je ale od zaciatku v tom ze som chcel poukazat ze ak ti nejde nastavit foreign key tak moze byt aj toto problem.
Na zaver si skusme predstavit este tabulku ktora ma id nastavenu tinyinteger, teda od -127 do 128. Tam sa ti uz unsigned asi aj zide a budes vediet ulozit az 255 riadkov. To ale nie je pointa. Dalej si predstavme ze foreign key bude tiez tinyinteger ale nebude unsigned. Je jasne ze do riadku s rozsahom -127 az 128 nevies ukladat hodnoty s rozsahom 0 az 255, takze ti SQL proste vypise ze foreign key na tieto dve polia nevie nastavit.
Ano díky, mám tam někde nejspíš vadný záznam, protože v testovací tabulce vše funguje jak má.
Napadl mě ale ještě jedne poddotaz. Co když bych chtěl vytvořit vtah 0(1):0(N).
Když to uvedu zase na stejném příkladu, tak bych chtěl uvést že žádný člověk nemusí být majitelem auta, protože je majitelem firma.
Ve Workbench tato vazba jde nastavit, ale už tam nedokážu odkoukat co se změnilo v těch tabulkách, respektive to vypadá, že se nezměnilo nic.
Teď jsem se do toho zamotal, možná je škoda, že nejde najít článek který by se parcialitou zabýval a klidně by mohl rozvést myšlenku s unsigned...
V každém případě, pokud přemýšlím správně, tak vztah 0:N dostanu v mém případě, když vytvořím řádek automobil s NULLovým id_clovek. Takže možnost ve Workbench, slouží pouze jako možnost grafického znázornění. Mýlím se?
Zobrazeno 11 zpráv z 11.