eliminar - sinonimos en mysql
¿Cuándo deberían utilizarse los sinónimos de la base de datos? (6)
Consulte la documentación de Oracle sobre sinónimos .
Además de las otras respuestas aquí, también se usan comúnmente para:
- Proporciona nombres fáciles de usar para tablas remotas, es decir, sobre enlaces de bases de datos
- Tablas que necesita que sean accesibles para todos los usuarios, es decir, sinónimos públicos
Tengo la sintaxis baja, pero me pregunto si alguien puede proporcionar un caso de uso ilustrativo donde los sinónimos de la base de datos son muy útiles.
Cuando tiene nombres de objetos de base de datos codificados dentro del código existente.
El uso de sinónimos puede ahorrarle la agonía de volver a escribir el código anterior, a veces de varias fuentes, que tiene sus propias ideas sobre la tabla o los nombres de las bases de datos.
He visto, por ejemplo, un código que fue escrito para un servidor de producción. El codificador ha codificado convenientemente el nombre de la tabla principal es test_data
, que funcionó bien en su estación de trabajo. Utilizar sinónimos en lugar de reescribir su código me hizo llegar a casa temprano.
Digamos, cuando necesita hacer una aplicación mal escrita (que no emite ALTER SESSION SET CURRENT_SCHEMA
) para trabajar contra otro esquema.
Los sinónimos se utilizan principalmente como una solución para casos como ese. Con una aplicación debidamente escrita, casi nunca tendrá que usarlos.
En general, es una mala práctica incorporar nombres de esquema en SQL o PL * SQL. Por lo tanto, si está escribiendo un código que debe referirse a una tabla en otro esquema como: "select id from OtherSchema.OtherTable", es mejor que defina un sinónimo para la tabla (cree el sinónimo OtherTable para OtherSchema.OtherTable) y escriba "select id" de OtherTable ".
De esta forma, si OtherTable se mueve a un nombre de esquema diferente, o si tiene otra instalación del sistema que usa un nombre de esquema diferente, puede redefinir los sinónimos en lugar de cambiar el código.
También se puede usar para cambiar el código entre dos esquemas con la misma estructura al redefinir los sinónimos.
Es excelente para montar tablas simuladas cuando se prueban. Por ejemplo, si las tablas de origen contienen millones de registros y desea probar un pequeño subconjunto de datos, puede usar sinónimos para redirigir la tabla de origen a una tabla más pequeña que controle, de modo que pueda organizar varios escenarios.
De esta forma, puede actualizar / eliminar los datos en la tabla simulada sin afectar su tabla fuente. Cuando esté listo para usar la tabla fuente, todo lo que necesita hacer es redirigir el sinónimo.
Usualmente veo sinónimos utilizados cuando el DBA desea separar objetos de base de datos en diferentes esquemas, pero quiere / necesita que algunos de estos objetos sean visibles para otros esquemas (pero no quiere darles acceso directo).
Un ejemplo que he visto más recientemente: varias aplicaciones web administradas por la misma compañía. Los usuarios generalmente tienen acceso a más de una de estas aplicaciones, y solo tendrán una cuenta de usuario para acceder a estas aplicaciones. La información de la cuenta de usuario se almacena en un esquema USER_ACCOUNTS
, y todas las demás aplicaciones están en sus propios esquemas y acceden al esquema USER_ACCOUNTS
medio de sinónimos.