Open-source trackball Ploopy Adept má novou verzi nazvanou A+. Stále jde o symetrický desktopový trackball s šasi z 3D tiskárny a firmwarem QMK. Novinkami jsou dvojice tlačítek, jimiž půjde také otáčet, a volitelná opěrka ruky. Funkcionalita firmwaru je rozšířena o gesta, vrstvy a možnost konfigurace za běhu. Schémata a kód jsou jako obvykle na GitHubu. A+ půjde předobjednat za 99 CAD (bez dopravy a cla/DPH).
Prusa Research představil nové modely svých 3D tiskáren: Prusa XL+, CORE One+ (Gen 2) a CORE One L+.
Crown je multiplatformní open source herní engine. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT a GPLv3+. Byla vydána nová verze 0.64. Vyzkoušet lze online demo.
NVIDIA na konci ledna vydala v beta verzi nativního linuxového klienta své cloudové herní služby GeForce NOW. Včera oznámila ukončení beta verze a oficiální podporu Linuxu.
Byla vydána nová verze 3.5.0 nástroje pro inkrementální kopírování souborů rsync (Wikipedie). Přehled oprav a vylepšení v souboru NEWS. Řešeno je 33 zranitelností.
Organizace Apache Software Foundation (ASF) vydala verzi 31 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.
Firma IBM uvedla svůj první mikropočítač Personal Computer před 45 lety, v srpnu 1981. Základní konfigurace modelu 5150 za 1 565 tehdejších dolarů obsahovala desktop s Intel 8088 a 16KB RAM, Color Graphics Adapter a klávesnici. Právě klávesnice Model F/XT vybavené kapacitními spínači, vlivné a s převodníkem dodnes použitelné, připomíná sběratelský web Admiral Shark's Keyboards.
Slovensko odhalilo ruské součástky ve dvou testovaných zařízeních na zjišťování přestupků v silničním provozu a označilo je za bezpečnostní riziko. S odvoláním na vyjádření slovenského Národního bezpečnostního úřadu (NBÚ) to včera oznámil ministr vnitra Matúš Šutaj Eštok. Zároveň ohlásil ukončení spolupráce svého úřadu s dodavatelem části uvedeného systému, slovenskou společností Soitron. Opozice, která na problematické kamery upozornila už dříve, vyzvala k odvolání ministra vnitra.
Dle plánu dnes ve 13:00 proběhne veřejný test eDokladů. Jeho cílem je ověřit připravenost aplikace a související infrastruktury na vysokou souběžnou zátěž před podzimními komunálními volbami.
Byla vydána nová verze 3.47 frameworku Flutter (Wikipedie) pro vývoj mobilních, webových i desktopových aplikací a nová verze 3.13 souvisejícího programovacího jazyka Dart (Wikipedie).
Rychlé a elegantní - obzvlášť, pokud bude chtít získat všechny atributy jednoho uživatele.
Díky, jdu zvracet
PS: Evidentně, estetika (a elegance) je velmi subjektivní
Těžko si dovedu představit, že by 100 atributů nebylo možné rozčlenit do skupin. Asi bych od sebe neodděloval jednotlivé položky adresy bydliště uživatele apod. Už jsem také viděl tabulku, ve které u každého druhého sloupce bylo datum jeho poslední modifikace a kdo ji provedl...
Problém je v tom, že o té aplikaci dohromady nic nevíme. Mám představu, že je to třeba nějaká matrika se 100 atributy a každá osoba má vyplněných třeba jen 5 údajů. Ostatní zůstávají prázdné. V tu chvíli mi mé řešení připadá logické. Ano, pokud budu chtít vypsat všechny atributy jednoho uživatele, bude select asi delší, než výstup. Ovšem v případě EAV to nemusí být o mnoho lepší.
Padlo tady EAV, hstore, hromada tabulek, NoSQL,... Najde se ještě něco?
Co je špatného na EAV? Že databáze vysype ke každému atributu znova jméno? A? Fór je v tom, že databáze to unese (pokud ne, tak se bavíme o takovym molochu, že Tvoje řešení taktéž není vhodné). Ale psaní dotazů - teda práce programátora - bude oproti Tvému řešení triviální. Jak v Tvém řešení získáš jednoduchým selectem všechny atributy daného uživatele?
Tím, že to rozdělíš do tabulek, tak naprosto ztratíš možnost s atributy pracovat dohromady. Kromě o nemnoho rychlejších některých dotazů tím ale nezískáš nic: z EAV struktury jsem totiž schopný naprosto triviálně emulovat dotaz jakoby nad (rozdělenou) tabulkou obsahující daný atribut. Opačně (pokud neberu jako alternativu hromadu unionů) to ale nejde.
... popř. pokud má být uživatel víceaplikační, tak další tabulku s vazbou N:1 (todle řešení bych preferoval, protože i když to neplánuješ teď, tak....).Tohle jsem nepochopil. Co by v téhle tabulce bylo?
CREATE TYPE t_baseclass as OBJECT (... nejake zakladni attributy ...)Pak tuto "abstraktni" (NOT FINAL) tridu ulozit do tabulky:
CREATE TABLE base OF t_baseclass;Do tabulky base pak muzes ulozit vsechny potomky tridy t_baseclass, vcetne vsech jejich dodatecnych atributu.
$item = $result->fetch(); $item['attr'] = json_decode($item['attr']);A obdobně před updatem/insertem. Velkou výhodou je implementační jednoduchost. Pokud máš složitější data a potřebuješ je jen uložit/načíst, jednodušší způsob asi nenajdeš. Pokud nad nějakou omezenou množinou dynamických attributů potřebuješ postavit index, například kvůli řazení, ulož je (duplicitně) do pomocného sloupce. Pokud se to hodí, můžeš tyto dynamické parametry umístit do samostatné tabulky, kde primárním klíčem bude ID uživatele a ID aplikace. Pak bude snadné smazat data patřící dané aplikaci. V praxi jsem tohle použil a dopadlo to dobře.
. Pokud není člověk vyloženě nucenej použít mysql (což zde evidentně není), tak to není argument: a zde je evidentně volnost v použitých prostředcích.
Tiskni
Sdílej: