Pregunta Dilema del nombre de la tabla: nombres singulares vs. plurales [cerrado]


La academia dice que los nombres de las tablas deben ser el singular de la entidad de la que almacenan atributos.

No me gusta ningún T-SQL que requiera corchetes alrededor de los nombres, pero he cambiado el nombre a Users tabla al singular, condenando para siempre a quienes usan la tabla para que algunas veces tengan que usar corchetes.

Mi intuición es que es más correcto permanecer con lo singular, pero mi intuición es también que los corchetes indican indeseables como nombres de columna con espacios en ellos, etc.

¿Debo permanecer o debo ir?


1171


origen


Respuestas:


Otros han dado respuestas bastante buenas en cuanto a "estándares", pero solo quería agregar esto ... ¿Es posible que "Usuario" (o "Usuarios") no sea en realidad una descripción completa de los datos contenidos en la tabla? ? No es que te vuelvas loco con los nombres de tabla y la especificidad, pero tal vez algo como "Widget_Users" (donde "Widget" es el nombre de tu aplicación o sitio web) sería más apropiado.


206



Tenía la misma pregunta, y después de leer todas las respuestas aquí definitivamente me quedo con SINGULAR, razones:

Motivo 1 (Concepto). Puedes pensar en una bolsa que contenga manzanas como "AppleBag", no importa si contiene 0, 1 o un millón de manzanas, siempre es la misma bolsa. Las tablas son solo eso, contenedores, el nombre de la tabla debe describir lo que contiene, no la cantidad de datos que contiene. Además, el concepto plural es más sobre un lenguaje hablado (en realidad para determinar si hay uno o más).

Motivo 2. (Conveniencia). es más fácil salir con nombres singulares, que con nombres plurales. Los objetos pueden tener plurales irregulares o no en absoluto, pero siempre tendrán uno singular (con algunas excepciones como Noticias).

  • Cliente
  • Orden
  • Usuario
  • Estado
  • Noticias

Motivo 3. (Estética y orden). Especialmente en escenarios de detalles maestros, esto se lee mejor, se alinea mejor por nombre y tiene un orden más lógico (primero maestro, segundo detalle):

  • 1. Orden
  • 2.OrderDetail

Comparado con:

  • 1.OderDetalles
  • 2 órdenes

Razón 4 (Sencillez). Poniendo todo junto, nombres de tabla, claves primarias, relaciones, clases de entidad ... es mejor tener en cuenta solo un nombre (singular) en lugar de dos (clase singular, tabla plural, campo singular, maestro-detalle singular-plural ... .)

  • Customer
  • Customer.CustomerID
  • CustomerAddress
  • public Class Customer {...}
  • SELECT FROM Customer WHERE CustomerID = 100

Una vez que sepa que está tratando con "Cliente", puede estar seguro de que usará la misma palabra para todas sus necesidades de interacción con la base de datos.

Motivo 5. (Globalización). El mundo es cada vez más pequeño, es posible que tenga un equipo de diferentes nacionalidades, no todos tienen inglés como lengua materna. Sería más fácil para un programador no nativo de inglés pensar en "Repositorio" que en "Repositorios" o "Estados" en lugar de "Estado". Tener nombres singulares puede provocar menos errores causados ​​por errores tipográficos, ahorrar tiempo al no tener que pensar "¿es niño o niño?", Lo que mejora la productividad.

Motivo 6. (¿Por qué no?). Incluso puede ahorrarle tiempo de escritura, ahorrar espacio en el disco e incluso hacer que el teclado de su computadora dure más tiempo.

  • SELECT Customer.CustomerName FROM Customer WHERE Customer.CustomerID = 100
  • SELECT Customers.CustomerName FROM Customers WHERE Customers.CustomerID = 100

Has guardado 3 letras, 3 bytes, 3 golpes extra en el teclado :)

Y, por último, puede nombrar aquellos que se equivocan con nombres reservados como:

  • Usuario> LoginUser, AppUser, SystemUser, CMSUser, ...

O usa los corchetes infames [Usuario]


1385



Si utiliza herramientas de Asignación relacional de objetos o lo hará en el futuro, sugiero Singular.

Algunas herramientas como LLBLGen pueden corregir automáticamente nombres en plural como Usuarios a Usuario sin cambiar el nombre de la tabla. ¿Por qué importa esto? Porque cuando está mapeado, quiere que se vea como User.Name en lugar de Users.Name o peor de algunas de las viejas tablas de bases de datos que nombran tblUsers.strName, lo cual es confuso en el código.

Mi nueva regla de oro es juzgar cómo se verá una vez que se haya convertido en un objeto.

Una tabla que encontré que no se ajusta a la nueva denominación que uso es UsersInRoles. Pero siempre habrá esas pocas excepciones e incluso en este caso se ve bien como UsersInRoles.Username.


242



Prefiero usar el sin inflexión sustantivo, que en inglés pasa a ser singular.

Inflar el número del nombre de la tabla causa problemas ortográficos (como muestran muchas de las otras respuestas), pero elegir hacerlo porque las tablas generalmente contienen varias filas también está semánticamente lleno de agujeros. Esto es más obvio si consideramos un lenguaje que infle sustantivos según el caso (como la mayoría lo hace):

Dado que generalmente estamos haciendo algo con las filas, ¿por qué no poner el nombre en el caso acusativo? Si tenemos una tabla en la que escribimos más de lo que leemos, ¿por qué no poner el nombre en dativo? Es una mesa de algo, ¿por qué no usar el genitivo? No lo haríamos porque la tabla se define como un contenedor abstracto que existe independientemente de su estado o uso. Inflar el sustantivo sin una razón semántica precisa y absoluta es balbuceo.

Usar el nombre no desilucionado es simple, lógico, regular e independiente del lenguaje.


174



¿Qué convención requiere que las tablas tengan nombres singulares? Siempre pensé que eran nombres en plural.

Un usuario se agrega a la tabla de Usuarios.

Este sitio acepta:
http://vyaskn.tripod.com/object_naming.htm#Tables

Este sitio no está de acuerdo (pero no estoy de acuerdo con él):
http://justinsomnia.org/writings/naming_conventions.html


Como otros han mencionado: estas son solo pautas. Elija una convención que funcione para usted y su empresa / proyecto y quédese con ella. Cambiar entre singular y plural o, a veces, abreviar palabras y, a veces no es mucho más irritante.


115



¿Qué tal esto como un simple ejemplo?

SELECT Customer.Name, Customer.Address FROM Customer WHERE Customer.Name > "def"

vs.

SELECT Customers.Name, Customers.Address FROM Customers WHERE Customers.Name > "def"

El SQL en este último es más extraño que el anterior.

Yo voto por singular.


55



Soy de la firme creencia de que en un diagrama de relación de entidad, la entidad debe reflejarse con un nombre singular, similar a un nombre de clase que es singular. Una vez instanciado, el nombre refleja su instancia. Entonces, con las bases de datos, la entidad cuando se convierte en una tabla (una colección de entidades o registros) es plural. Entidad, el usuario se convierte en usuarios de tabla. Estoy de acuerdo con otras personas que sugirieron que tal vez el nombre de Usuario podría mejorarse para el Empleado o algo más aplicable a su situación.

Esto tiene más sentido en una declaración SQL porque está seleccionando desde un grupo de registros y si el nombre de la tabla es singular, no se lee bien.


53