Pregunta

He notado que muchas empresas usan un prefijo para sus tablas de base de datos. P.ej. las tablas se llamarían MS_Order, MS_User, etc. ¿Hay alguna buena razón para hacer esto?

La única razón por la que puedo pensar es para evitar la colisión de nombres. ¿Pero realmente sucede? ¿Las personas ejecutan múltiples aplicaciones en una base de datos? ¿Hay alguna otra razon?

¿Fue útil?

Solución

En SQL Server 2005 y más arriba, la característica de esquema elimina la necesidad de cualquier tipo de prefijo. Puede encontrar un buen ejemplo de su uso leyendo sobre los Esquemas en AdventureWorks .

En algunas versiones anteriores de SQL Server, tener un prefijo para crear un pseudo espacio de nombres podría ser útil con bases de datos con muchas tablas.

Aparte de eso, realmente no puedo ver el punto.

Otros consejos

Personalmente, no veo ningún valor en ello. De hecho, es un fastidio para características similares a las inteligentes porque todo comienza con MS_. :) El Maestro está de acuerdo conmigo también .

Los esquemas enormes a menudo tienen muchas tablas con propósitos similares, pero distintos. Por lo tanto, varios " segmentados " convenciones de nomenclatura.

Maldición, no obtuve la primera publicación :-)

Incluso cuando la base de datos solo contiene una aplicación, los prefijos pueden ser útiles para agrupar partes de la aplicación. Por lo tanto, las tablas que contienen información más sencilla pueden tener el prefijo cust_, las que contienen información del almacén pueden tener el prefijo inv_ (para el inventario), las que contienen información financiera pueden tener el prefijo fin_, etc.

He trabajado en sistemas donde hay una base de datos existente para una aplicación que fue creada y mantenida por una compañía diferente y hemos necesitado agregar otra aplicación que use grandes cantidades de los mismos datos con solo unas pocas tablas adicionales propios, por lo que en ese caso tener un prefijo específico de la aplicación puede ayudar con la separación.

Ligeramente tangencial a la pregunta original, he visto que las bases de datos usan prefijos para indicar el tipo de datos que contiene una tabla. Habría un prefijo para las tablas de búsqueda que obviamente son bastante estáticas tanto en tamaño como en contenido y un prefijo diferente para las tablas que contienen datos variables. Esto, a su vez, puede dividirse en tener un prefijo para las tablas que se agregan pero no se cambian realmente como el registro, los pedidos procesados, las transacciones de los clientes, etc., y otro para obtener datos más variables como el saldo de los clientes o lo que sea. Las tablas de enlaces también podrían tener su propio prefijo para separarlos también.

Nunca he visto una colisión de nombres, ya que generalmente no tiene sentido colocar tablas de diferentes aplicaciones en el mismo espacio de nombres de la base de datos. Si tuvieras algún tipo de biblioteca reutilizable que pudiera integrarse en diferentes aplicaciones, quizás esa sea una razón, pero no he visto nada de eso.

Sin embargo, ahora que lo pienso, hay algunos proveedores de alojamiento web baratos que solo permiten a los usuarios crear una cantidad muy pequeña de bases de datos, por lo que sería posible ejecutar varias aplicaciones diferentes utilizando una sola base de datos, por lo que siempre y cuando los nombres no coincidan (y tal convención de prefijo sin duda ayudaría).

Múltiples aplicaciones usando una tabla en particular, correcto. Los prefijos evitan la colisión de nombres. Además, hace que sea bastante sencillo hacer copias de seguridad de las tablas y mantenerlas en la misma base de datos, simplemente cambiar el prefijo y su copia de seguridad será completamente funcional, etc. Aparte de eso, es una buena práctica.

Los prefijos son una buena manera de ordenar qué objetos de SQL están asociados con qué aplicación cuando varias aplicaciones se incorporan a la misma base de datos.

También he prefijado los objetos SQL de forma diferente dentro de la misma aplicación para facilitar la administración de la seguridad. es decir, todos los objetos con admin_ necesitan esta seguridad aplicada y el resto necesita algo más.

Los prefijos pueden ser útiles para personas, herramientas de búsqueda y scripts. Sin embargo, si la situación es simple, probablemente no les sirva para nada.

Se usa con más frecuencia si varias aplicaciones comparten una base de datos. Por ejemplo, si instala Wordpress, prefija todas las tablas con " wp_ " ;. Esto es bueno si desea que sus aplicaciones compartan datos muy fácilmente (por ejemplo, sesiones en todas las aplicaciones de su empresa).

Sin embargo, hay mejores formas de lograr esto, y nunca prefijo los nombres de mis tablas, ya que cada aplicación tiene su propia base de datos independiente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top