Odkazujete na komentář, kde jsem znova zopakoval, že zadání musí upřesnit tazatel.
A to, že jsi jednou napsal rozumnou věc jako znamená, že jsi v dalších příspěvcích nemohl začít tvrdit blbiny???
Snadnost úpravy při jedné specifické změně sémantiky je irelevantní,
Pokud je to změna sémantiky, která se dá očekávat, protože je v tomto smyslu nejasné zadání, tak to rozhodně irelevantní není. Dobrý programátor toto kritérium při designu programu zohledňuje: je to jedna z poměrně klíčových vlastností dobrého kódu.
Já vím, co jsem uváděl – a vy si to můžete přečíst.
Evidentně furt nevíte, co jste napsal za nesmysl. Prostě pokud někdo řekne, že chce všechny pražáky, a pak řekne,že ty ostatní, tak rozhodně nechce explicitně vyloučit ty, co nikde nebydlí. To jste jednoznačně popíral a to je prostě nesmysl.A pokud jste to popírat nechtěl, tak se holt smiřte s tím, že se neumíte vyjadřovat a pochopili jsme to tu prostě jinak, nežjste chtěl. Vzhledem k tomu, že je nás víc, tak asi nebude chyba na přijímači.
Btw. i Vaše ostatní příklady byly nesmyslné: např. příklad s vedoucím, tak tam jednou bude chtít vedoucí, co mají plat nad 50. A podruhé bude chtít ostatní vedoucí. Tedy všechny vedoucí, kteří nespadli do první kategorie - např. tedy i tyu kterých není plat znám. Rozhodně by Vás šéf nepochválil, kdybyste mu jednoho šéfa, u kterého není v IS plat znám,nedodal. To, že nebudou chtít běžné zaměstnance je nesmyslný argument - být vedoucím a mít plat je ortogonální kritérium,selekce podle jednoho nemá s tím druhým nic společného.
A koneckonců i v případě samotné Prahy jste vlastně sám se sebou ve sporu, protože přiznáváte, že: "Bezdomovce, u kterých neznají adresu, opravdu řešit nebudou.". ŘEŠIT NEBUDOU. Tedy nikoli, že jim nechtějí dát dárek - tedy že explicitně chtějí null hodnoty vyloučit, jak tvrdíte.
Obecně jsou dvě možnosti: buď si člověk možnost "třetí hodnoty" uvědomuje, pak ji zpravidla řeší explicitně. Daleko častější je ovšem to, že si tuto možnost vůbec neuvědomuje, a negací nějakého kritéria myslí: "Všechny ostatní".
proč JOINbez upřesnění je zkratka zrovna pro INNER JOIN. Že by to bylo proto, že je to nejčastější použití? Snadnost
Vzhledem k tomu, že standard SQL je všechno, jen ne úsporný - a preferuje ukecanost a relační čistotu před praktičností, tak to je špatný argument. Např. většina políček v db je dnes not null, a přeci je to nutné explicitně uvádět.
A btw..., když si tak horoval za pravou sémantiku SQL dotazů, tak zrovna sémantika NULL je v SQL pěkně zmršená(jeden z mnoha problémů např.
https://www.oreilly.com/library/view/sql-and-relational/9781449319724/ch04s04.html)Furt se tu oháníte "pravou sémantikou SQL" a jak se jí mají lidé držet. Jenže ona ta "původní sémantika" SQL byla vytvořená
teoretikama a pro praxi se příliš nehodí.
Mít strukturu databáze, kde hodnoty >= 1 znamenají „povoleno“ a hodnoty 0 a NULL znamenají zakázáno, není dobrý nápad. Každý stav by
měl být reprezentován právě jednou hodnotou.
Opět směšuješ NULL a neuvedeno. Pro NULL to je zcela pravda. Ale v případě oprávnění, kde daná osoba může mít oprávnění pocházející z více zdrojů, je struktura, kde jsou existující oprávnění uložené, a ty co nejsou, prostě nejsou, naprosto normální a správná. A v takovém případě - pokud existuje i způsob jak určit "defaultní právo", tak má smysl i rozlišovat stav 0 = zakázáno.
Takže tady zmiňuješ sice správnou zásadu, ale na nesprávném místě.
A btw. i to explicitní NULL by v takové db struktuře mělo smysl, pokud by ta tabulka s právama obsahovala ještě něco dalšího a šlo by o denormalizaci: což je opět věc, kde se střetává teoretizování s realitou.