Offentlige synonymer tjener et meget specifikt formål; de gør det muligt at henvise til et objekt af alle bruger - forudsat at de har de relevante privilegier. Hvis du på noget tidspunkt i fremtiden ønsker at ændre, hvordan en bestemt bruger ser et objekt, er offentlige synonymer ikke vejen at gå.
De bruger også et bestemt objektnavn til hele databasen. Det faktum, at der findes et offentligt synonym, forhindrer dig dog ikke i at oprette et objekt med samme navn. Dette kan være utroligt forvirrende.
Antag for eksempel, at du har en procedure test
og et skema emp
. Forsøger at udføre emp.test
vil ikke fungere, da du allerede har offentligt synonym emp
på bordet .
Tom Kyte , synes at har skrevet en antal artikler om dette.
Med hensyn til ydeevneaspektet synes de at foreslå, at et offentligt synonym over et privat synonym vil resultere i en let fald i ydeevne . Brug af et synonym i stedet for intet synonym vil dog også resultere i et lille fald i ydeevnen. Dette tyder på, at hvis hver sidste computer er værdifuld, bør du slet ikke bruge synonymer.
Sammenlagt tror jeg, at det betyder, at du bør undgå offentlige synonymer, hvis det er muligt. Hvis du bruger man bruger så selvfølgelig en, de findes jo af en grund, men hvis man ikke gør, hvad er så meningen med at have en? scott.emp
konstruktionen er klar, viser dig præcist hvilket skema og hvilket objekt du refererer til uden mulighed for fejlfortolkning, hverken af dig selv eller en anden, der kommer ny til databasen og koden.
Hurtigt punkt. Du siger det ikke eksplicit, men ordlyden af dit spørgsmål synes at antyde, at du opretter et skema for hver bruger. Det virker som om det ville være enormt forvirrende...