Portál AbcLinuxu, 11. května 2025 07:24
nejdřív si prosimtě zjisti a přečti neco o normálních formách a o primárních klíčích ... (primární klíč != ID)To jsem nikdy netvrdil. Já psal že to tak v návrzích vídám.
UID | GID 1 5 1 8 2 8 ...
UID, GID
.
UID - INDEX GID - INDEX UID + GID - PRIMARYJe dobré že si databáze bude hlídat unikátnost záznamů, ale není to zbytečné? To si snadno ohlídám v aplikaci a nebude to na úkor zvětšování tabulky databáze.
Je dobré že si databáze bude hlídat unikátnost záznamů, ale není to zbytečné?
Není to zbytečné. DB si má sama hlídat integritu dat (od toho je to taky databáze).
To zní rozumně. Opravdu tam bude vždy jen unikátní vazba uid-gid. Teď to mám udělané tak, že uid a gid jsou prostě jen INDEXované, každé zvlášť. Takže by to mělo být takto?:UID - INDEX GID - INDEX UID + GID - PRIMARY
Měl by stačit pouze primární klíč, ten lze použít i na vyhledávání dle UID. Případně ještě (podle typů dotazů) index nad GID. Také záleží, jakou to bude mít selektivitu, pokud bude 2mil uživatelů v 5 skupinách, tak bude procházení indexem na GID dražší než průchod celou tabulkou (potom je index jen režie navíc). Uvidíš podle prováděcího plánu.
Všecho si můžete ohídat v aplikaci a databázi degradovat na úložiště klíč=hodnota.
To je také cesta, v tom případě bych ale navrhoval použít přímo key-value DB a ne ji simulovat v SQL.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.