2010-12-22 17 views
21

¿Qué es un prefijo de tabla y cuáles son sus ventajas y desventajas? Esto está en relación con MySQL.¿Qué es un prefijo de tabla?

+0

qué tipo de base de datos está utilizando? – RYFN

+0

¿se refiere a un nombre de tabla de prefijos como tblTasks o el esquema es decir dbo.tasks – Robb

+0

lo siento, mi base de datos MySQL – alioygur

Respuesta

20

Esto se usa a menudo para distinguir las diferentes instalaciones del mismo script entre sí. Por ejemplo, supongamos que tiene dos instalaciones de Joomla con contenido diferente en su servidor, pero solo una base de datos MySQL.

Ahora, por razones obvias, las dos instalaciones de Joomla no pueden compartir las mismas tablas de la base de datos, ya que eso daría como resultado que ambas instalaciones muestren los mismos contenidos. Y ahí es donde entra el prefijo.

Al usar diferentes prefijos de tabla, puede dejar que Joomla Installation # 1 sepa que se supone que debe usar toda la tabla con Prefix JOS_ y Joomla Installation # 2 tiene que usar todas las tablas con el prefijo JOS2_

0

Puede ser útil distinguir entre tablas y vistas, según cuál sea su convención de nomenclatura.

La desventaja es que puede estar limitado en lo que respecta al nombre de una tabla. Oracle tiene un límite de 30 caracteres para esto. Si usa "Tbl_" como prefijo, perderá automáticamente 4 caracteres. Eso puede ser un problema.

3

Las tablas no requieren prefijos.

Esto depende exclusivamente de usted.

Sin embargo, prefijamos tablas con relación a los MÓDULOS en la aplicación a la que pertenecen, solo para agrupar las tablas más fácilmente.

4

Algunas personas recomiendan tbl o tbl_ (por ejemplo, tbl_MyTable o tblMyTable), mientras que otras tienen un sufijo como MyTable_T.

Personalmente evito los prefijos/sufijos. Puedo sustituir en una Vista en lugar de una Tabla si un esquema está cambiando con el tiempo, así que realmente no distingo entre los dos tipos de objetos.

Lo más importante es que tenga sus pautas de nombres documentadas dentro de su equipo y todos se apeguen a las mismas pautas de coherencia.

3

Los prefijos de tabla también son útiles como una medida de seguridad adicional. Por ejemplo, agregar prefijos de tabla oscurece los nombres comunes de las tablas dificultando que los hackers accedan a los datos en su base de datos a través de la inyección SQL u otros agujeros de seguridad, ya que primero deberán descubrir cuáles son los nombres de sus tablas.

Asegúrese, sin embargo, de ver los prefijos de tabla como solo otra capa de seguridad y no como su único método de seguridad. Debería seguir tomando otras medidas de seguridad para evitar la inyección de SQL y otras amenazas similares. Por ejemplo, dependiendo de cómo esté configurado su código, aún puede ser posible que un hacker ejecute un comando "show tables" a través de la inyección SQL para obtener los nombres de las tablas de su base de datos.

1

Extraño nadie mencionó que también puede usar prefijos de tabla para usar palabras clave normalmente reservadas como nombres de tabla.

E.g. t_user o t_order ahora son posibles.

+0

Puede usar cualquier nombre para una tabla mysql, por ejemplo 'CREATE TABLE \' DROP DATABASE webshop; \ '(\' value \ 'INT)' –

1

Si tiene un sitio web complejo y una estructura de base de datos, los prefijos de tabla pueden ayudar a evitar conflictos de nombres en la base de datos.

A menudo se ve prefijos de tabla en situaciones donde:

  • guiones múltiples están siendo integrados juntos en una página web y el sitio web terminado necesita compartir datos, pero los nombres de tabla entrarían en conflicto sin un prefijo único para cada guion

  • va a agregar funcionalidad a una secuencia de comandos que haya adquirido, y que desea distinguir entre tablas nativas de ese guión y nuevas tablas que está creando manualmente. De esta forma, si crea una nueva tabla, no entrará en conflicto con ninguna actualización futura del script base, ya que tiene un prefijo de tabla diferente.

  • usted tiene un plan de alojamiento que sólo le da una base de datos y desea utilizar esa base de datos para dar servicio a varias secuencias de comandos. (Esto no es recomendable para una variedad de razones, pero he visto los usuarios hacen esto.)

Cuando está escribiendo un guión desde cero, prefijos de tabla por lo general no son necesarias ya que permite controlar todos los aspectos de la estructura de la base de datos. Es cuando comienzas a integrar múltiples scripts juntos que se vuelven útiles y algunas veces incluso necesarios. Le permite crear vistas de datos únicas, y unir tablas, entre secuencias de comandos múltiples sin preocuparse por conflictos de nombres en la base de datos.

Cuestiones relacionadas