sql >> Databáze >  >> RDS >> Oracle

Veřejná synonyma vs. schéma.objektový vzor

Veřejná synonyma slouží velmi specifickému účelu; umožňují odkazovat na objekt každým uživatel – za předpokladu, že má příslušná oprávnění. Pokud budete chtít kdykoli v budoucnu změnit způsob, jakým konkrétní uživatel pohlíží na objekt, pak veřejná synonyma nejsou správná cesta.

Také používají konkrétní název objektu pro celou databázi. Skutečnost, že existuje veřejné synonymum, vám však nebrání ve vytvoření objektu se stejným názvem. To může být neuvěřitelně matoucí.

Předpokládejme například, že máte proceduru test a schéma emp . Pokus o provedení emp.test nebude fungovat, protože již máte veřejné synonymum emp na stolu .

Tom Kyte , zdá se napsali počet článků o tom.

Z hlediska výkonu se zdá, že naznačují, že veřejné synonymum nad soukromým synonymem bude mít za následek mírný pokles výkonu . Použití synonyma místo žádného synonyma však také povede k mírnému snížení výkonu. To naznačuje, že pokud každý poslední počítač je vzácné, neměli byste používat synonyma vůbec.

Dohromady to myslím znamená, že byste se měli pokud možno vyhýbat veřejným synonymům. Pokud potřebujete jeden pak samozřejmě použít jeden, existují přece z nějakého důvodu, ale pokud ne, jaký to má smysl mít jeden? Soubor scott.emp konstrukt je jasný, přesně vám ukáže, na jaké schéma a objekt odkazujete, bez jakékoli možnosti nesprávné interpretace, ať už vámi nebo někým jiným, kdo přijde do databáze a kódu nový.

Rychlý bod. Neříkáte to explicitně, ale zdá se, že formulace vaší otázky naznačuje, že vytváříte schéma pro každého uživatele. Zdá se, že by to bylo značně matoucí...




  1. Pomocí Order By v codeigniter

  2. Jak vyřešit ORA-00939:příliš mnoho argumentů pro chybu funkce?

  3. jak vybrat narozeniny 7 dní před dneškem v mysql

  4. Ukládání položek nákupního košíku do cookies a databáze