Dilema de nomenclatura de tablas: nombres singulares versus 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 de una Users
tabla al singular, sentenciando para siempre a quienes usan la tabla a tener que usar corchetes a veces.
Mi intuición es que es más correcto quedarse con el singular, pero mi intuición también es que los corchetes indican elementos indeseables como nombres de columnas con espacios, etc.
¿Debo permanecer o debo ir?
Tenía la misma pregunta, y después de leer todas las respuestas aquí definitivamente me quedo con SINGULAR , razones:
Razón 1 (Concepto). Puedes pensar en una bolsa que contiene 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 qué contiene, no cuántos datos contiene. Además, el concepto plural se trata más de un idioma hablado (en realidad, para determinar si hay uno o más).
Razón 2 . (Conveniencia). Es más fácil salir con nombres en singular que en plural. Los objetos pueden tener plurales irregulares o ningún plural, pero siempre tendrán uno singular (con pocas excepciones como Noticias).
- Cliente
- Orden
- Usuario
- Estado
- Noticias
Razón 3 . (Estética y Orden). Especialmente en escenarios maestro-detalle, esto se lee mejor, se alinea mejor por nombre y tiene un orden más lógico (Maestro primero, Detalle segundo):
- 1.Orden
- 2.Detalle del pedido
En comparación con:
- 1.Detalles del pedido
- 2 órdenes
Razón 4 (Simplicidad). En conjunto, nombres de tablas, claves primarias, relaciones, clases de entidades... es mejor tener en cuenta un solo nombre (singular) en lugar de dos (clase singular, tabla plural, campo singular, detalle maestro 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 utilizará la misma palabra para todas sus necesidades de interacción con la base de datos.
Razón 5 . (Globalización). El mundo es cada vez más pequeño, puede que tengas un equipo de diferentes nacionalidades, no todo el mundo tiene el inglés como lengua materna. Sería más fácil para un programador no nativo en inglés pensar en "Repositorio" que en "Repositorios", o en "Estado" en lugar de "Estados". Tener nombres singulares puede generar menos errores causados por errores tipográficos, ahorrar tiempo al no tener que pensar "¿es Niño o Niños?", mejorando así la productividad.
Razón 6 . (¿Por qué no?). ¡Incluso puede ahorrarle tiempo de escritura, espacio en disco e incluso hacer que el teclado de su computadora dure más!
SELECT Customer.CustomerName FROM Customer WHERE Customer.CustomerID = 100
SELECT Customers.CustomerName FROM Customers WHERE Customers.CustomerID = 103
Has guardado 3 letras, 3 bytes, 3 pulsaciones de teclado adicionales :)
Y finalmente, puedes nombrar aquellos que se equivocan con nombres reservados como:
- Usuario > Usuario de inicio de sesión, Usuario de aplicación, Usuario del sistema, Usuario CMSU,...
O utilice los infames corchetes [Usuario]
Prefiero usar el sustantivo sin flexiones , que en inglés resulta ser singular.
Inclinar 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 flexiona los sustantivos según el caso (como lo hace la mayoría):
Dado que normalmente hacemos algo con las filas, ¿por qué no poner el nombre en 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 tabla de algo, ¿por qué no usar el genitivo? No haríamos esto porque la tabla se define como un contenedor abstracto que existe independientemente de su estado o uso. Declinar el sustantivo sin una razón semántica precisa y absoluta es balbucear.
Usar el sustantivo sin flexiones es simple, lógico, regular e independiente del idioma.