Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Kit

Stran: 1 ... 26 27 [28] 29 30 ... 47
406
Vývoj / Re:MySQL - podmíněný SELECT přes dvě tabulky
« kdy: 22. 10. 2019, 22:40:33 »
Samozřejmě přehled štítků je možné udělat i z Tvojí struktury pomocí select distinct, ale to už je zas klasickej rovnák na vohejbák
Nikoli, je to přesně to, jak se se štítky pracuje. Je to prostě nějaký text, který se přilepí k dané entitě. Nenese žádnou další informaci, vzniká prostě tím, že se k dané entitě připojí, maže se tak, že se od entity smaže. Neexistuje žádný seznam povolených štítků, nezakládají se nové štítky ani se nemažou. Pokud chci seznam všech štítků, sesypu všechny použité štítky na jednu hromadu.

Tento přístup se v relačních databázích nepoužívá, to dělají jen bastly přes ORM.

407
Vývoj / Re:MySQL - podmíněný SELECT přes dvě tabulky
« kdy: 21. 10. 2019, 20:46:38 »
Ale komplikovaná logika nacpaná v triggerech a uložených procedurách je druhý extrém.
Naopak komplikovaná logika patří právě sem. Databázi obvykle řeší mnohem kvalifikovanější pracovník, než ten, který staví aplikaci. Tomu se dávají k dispozici jen data, která potřebuje. Triggery pak zajišťují ověření, nebo např. tvoření historie záznamu atd. Pokud to někdo dělá v aplikaci (PHP), je to nešťastné.

Bohužel mnoho firem nemá prostředky na kvalifikovaného DB specialistu a nechávají to na polovzdělaných PHP programátorech, kteří jen umí spoléhat na ORM frameworky, ale o databázovém modelování nemají ani ponětí.

408
Vývoj / Re:MySQL - podmíněný SELECT přes dvě tabulky
« kdy: 21. 10. 2019, 20:40:24 »
Když správce databáze umí používat GRANT, vložené procedury a triggery, tak se nemusí bát k ní někoho pustit.
Jistě, ale tady jsme se bavili o případu, kdy jeden diskutující triggery používat neumí. Navíc aplikační logiku je možné psát v databázi, ale má to své meze použitelnosti a složitější logiku je lepší psát jinde, než v databázi. To, že někdo umí jenom SELECT * FROM tabulka a vše ostatní – řazení, filtrování, spojování – řeší (typicky) v PHP, je jeden extrém. Ale komplikovaná logika nacpaná v triggerech a uložených procedurách je druhý extrém.

Nemusíme jít ani do jednoho extrému. Často úplně stačí, když si databáze udrží konzistenci, referenční integritu. Generování výstupního XML/HTML je sice v databázi možné, ale je to hloupé. Opačně jsem viděl ve výstupní šabloně volat SQL dotazy, což je zpravidla také špatně.

409
Vývoj / Re:MySQL - podmíněný SELECT přes dvě tabulky
« kdy: 21. 10. 2019, 16:40:09 »
Když správce databáze umí používat GRANT, vložené procedury a triggery, tak se nemusí bát k ní někoho pustit.
Na MySQL bude problém s oprávněním k datům uvnitř aplikace, tam asi nebude možné nic vymyslet kromě middlewaru, který provede ověření oprávnění k datům a filtrování řádků, které se nesmějí ven dostat.

Na PostgreSQL by to šlo poměrně bez problémů pomocí row-level-security a pomocí views s WITH secuirty_barrier.

Jde to i v MySQL. Stačí udělit přístupy jen k pohledům a vloženým procedurám. Odpadnou tím potíže se špinavými kešemi a zbytečně dlouhým zamykáním transakcí.

Celý middleware může být přímo v databázi. Spousta běžných potíží tím sama odpadne.

410
Vývoj / Re:MySQL - podmíněný SELECT přes dvě tabulky
« kdy: 21. 10. 2019, 16:08:55 »
Nejlepším databázovým API je SQL.
Ovšem když chcete někoho pustit ke své službě, neznamená to, že nejlepší je zpřístupnit mu databázi.

Když správce databáze umí používat GRANT, vložené procedury a triggery, tak se nemusí bát k ní někoho pustit.

411
Vývoj / Re:MySQL - podmíněný SELECT přes dvě tabulky
« kdy: 21. 10. 2019, 14:28:36 »
Pokud je to kontrola v aplikaci, pak to není možno v pravém smyslu považovat za integritní omezení dat.
Za prvé to stejně tak je možné považovat za v pravém smyslu integritní omezení dat – můžete např. data zpřístupnit jen přes nějaké API, jehož implementace teprve bude komunikovat s databází, nikdo jiný přímo do databáze nepoleze.

Nejlepším databázovým API je SQL.

412
Vývoj / Re:MySQL - podmíněný SELECT přes dvě tabulky
« kdy: 20. 10. 2019, 23:53:04 »
Vedoucí vede oddělení, podřízené mít nemusí.

413
Zvykl jsem si na R Alt kombinace a když potřebuji něco naprogramovat ve windows, skřípu zuby, protože tam mi to na české klávesnici nefunguje.

Funguje, jen ty pozice jsou jinde.

414
Server / Re:Internetovy obsah pres DLNA
« kdy: 20. 10. 2019, 13:48:31 »
Zkusil bych hledat "DLNA podcast". Nějaké návody jsem zahlédl.

415
o jakých knihovnách je řeč?

O těch, které jsou součástí PHP.

416
Popravdě mi teprve teď došlo, že nemáte k dispozici Céčkový typový systém, pointerovou aritmetiku apod. Prostě všechen ten bordel, který umožňuje koukat na data střídavě jako na buffer binárních bajtů, nulou zakončený řetězec znaků, integer o potřebné délce na nějaké adrese apod. Takže nevím, jak s tím bufferingem. Má PHP aspoň něco jako perlový "binmode" režim souborů? Datový typ "buffer binárních bajtů", nebo třeba jenom stringy co nesmí obsahovat nulové bajty?

Ano, PHP má i binary-safe mode.

Ohledně endianity... procesor při aritmetických operacích očekává data uložená v RAMce v souladu s endianitou Vaší instrukční sady. Formát uložení binárních dat v souboru (nebo na síti) může mít nějaký standard, který endianitu jasně stanoví = může být potřeba, konvertovat indiány mezi instrukční sadou a diskovým formátem.

V tom také není problém, i když k binární reprezentaci čísla není přístup. Bitové posuny a maskování však umí.

Koukám, že PHP má jenom jeden integer podle architektury, a to se znaménkem... Tzn. 16bit unsigned hodnota se Vám do něj nejspíš vejde bez problému. Jak k tomu přistupovat po bajtech... jakožto PHP analfabet, bez pointerové aritmetiky, bych se to asi pokusil ohnout pomocí bitwise operátorů, ty jsou zřejmě k dispozici. Levý a pravý shift, stejně jako masky používané s operací "AND" fungují na úrovni zdrojového textu všude stejně, nezávisle na indiánech v instrukční sadě = tyto operace použité ve zdrojáku jsou multiplatformní. A funkce ord() a chr() jsou myslím použitelné jenom na zobrazitelné ASCII znaky. Pokud potřebujete 16bit čísla ukládat buď jako dva bajty v binárním souboru nebo jako číslo v ASCII textu, podle mého budete potřebovat spíš sprintf()/sscanf() nebo něco na ten způsob (pro konverzi do/z ASCII formátu).

Ano tohle všechno v PHP funguje, ale je zde zásadní otázka: Proč dělat tyhle binární opičky, když je to už hotové, v knihovnách, napsáno v C/C++, takže je to i rychlé?

417
Jak píšete např. v TeXu vy?

Nepíši v TeXu, ale pro TeX. Píši ve Vimu, s českou klávesnicí, speciální znaky přes R-Alt. Na znaky, které nejsou ani na anglické, používám digraphs, případně vlastní makra.

418
@Kit: Po jak velkých blocích je nejoptimálnější načítat data ze souboru? Dejmetomu, že mám texťák s emaily a id-éčkama uživatelů, na začátku je hlavička s rejstříkama cca 2KB. Je nějaký rozdíl v rychlosti či odezvě v tom jestli napoprvé načtu 2kB, 4kB nebo 8kB? Opakuji, že jde jen o první načtení hlavičky, z toho zjistím přesné umístění bloku, ve kterém hledat email po přihlášení; Takový blok by pak měl mít prakticky mezi 50-250 znaky. Takže i kdyby měl soubor 4MB, během přihlašování načtu jen hlavičku a pak ten hledaný blok.

Optimální by mělo být 8 KiB, protože to je obvyklá velikost bufferu.

BTW: Slovo "nejoptimálnější" je nesmyslné - slovo "optimální" je superlativem a stupňovat se nedá.

419
Vývoj / Re:PHP nechce nastavit Globals
« kdy: 18. 10. 2019, 14:01:06 »
tak si vypni vypisování notice, jako to máš na produkci :-)))

Jen to ne!

420
Vývoj / Re:PHP nechce nastavit Globals
« kdy: 18. 10. 2019, 13:26:42 »
No ale ona existuje.
v config.php mam
Kód: [Vybrat]
$global['siteName'] 	= 'XXX';
$global['siteURL'] = 'http://127.0.0.1/';

Ten config.php načítáš kde?

Stran: 1 ... 26 27 [28] 29 30 ... 47