¿Cómo debo nombrar mis tablas al crear una nueva base de datos?
Singular: Client
o Plural Clients
:?
database-design
naming-convention
John Isaiah Carmona
fuente
fuente
person NAMED 'fred' EARNS 20,000
(donde los nombres en mayúsculas son las tablas). 2) use el nombre de la empresa para el conjuntoPERSONNEL
, p . EjPAYROLL
.ORG_CHART
, Etc.Respuestas:
Depende de usted. Sin embargo, solo sé consistente.
Personalmente , prefiero el singular en función de lo que almacena cada * fila: pedido, producto, usuario, artículo, etc.
Esto coincide con mi modelado (a través del modelado de roles de objetos) donde uso entidades / tipos singulares.
Editar:
Una de las razones es que plural falla cuando tiene tablas de enlaces:
Orders
,Products
le danOrderProducts
oOrdersProducts
. Ninguno de los dos suena correctoO tablas de historial (por supuesto, puede usar esquemas para esto):
Orders
->OrdersHistory
o (¡no!)OrdersHistories
? NoOrder
->OrderHistory
ser mejor?fuente
Singular
oPlural
?TablenameID
orTablenameCode
otablename_id
. Con los nombres de tabla en plural, terminas conOrders.OrdersID
(que no se ve bien) oOrders.OrderID
donde usas plural para nombres de tabla pero cambias a singular para prefijos de columna.Con respecto a los nombres de tablas singulares versus plurales, el tema parece ser controvertido, pero no debería serlo.
Mientras que una tabla es una colección de múltiples registros, una tabla lleva el nombre de la definición del tipo de registro que contiene. Si a una tabla se le permitiera tener un nombre diferente al del tipo de registro que contiene, puede darle a la tabla un nombre plural, por ejemplo, podría tener una tabla de Empleados que contenga múltiples registros de Empleado. Pero el diseñador de SQL no proporcionó nombres separados para tablas y tipos de registros.
Las cosas funcionan más lógicamente para los programas orientados a objetos que usan los datos, si el nombre de un tipo de registro (y, por extensión, el nombre de la tabla) se mantiene en singular, ya que corresponderá con el nombre de la clase que usaría para describir un registro .
Si luego desea identificar una colección en el programa, puede usar un plural, o mejor, usar un modificador apropiado, como EmployeeList o EmployeeArray.
También hay un problema con los plurales irregulares para la generación automática de código y los programadores que tienen diferentes antecedentes de lenguaje o ideas sobre la formación de plurales en un programa.
El idioma inglés no es un lenguaje de programación bueno y adecuado, y tratar de hacer que las declaraciones de la base de datos y del programa se ajusten al inglés porque suena mejor leer una de esas declaraciones es un error.
fuente
Al igual que la respuesta de @ gbn, creo que esto es más una cuestión de preferencias y, al igual que él, recomiendo que cualquier elección que haga, aplíquela en todas partes (al menos en esa base de datos). La consistencia lo vale.
Sin embargo, mi preferencia es que un plural suene mejor en las
SELECT
declaraciones:Quiero decir, en este caso, al menos, hay varias personas en la mesa y varias de ellas son devueltas al cliente.
fuente
"orden" es una palabra reservada. "órdenes" no es
"usuario" es una palabra reservada. "usuarios" no es
"sesión" es una palabra reservada. "sesiones" no es
"resultado" es una palabra reservada. "resultados" no es
"relativo" es una palabra reservada. "parientes" no es
...
Esas parecen palabras comunes que pueden ir en una base de datos de línea de negocio. Las palabras en plural parecen ser menos comunes como palabras clave que las palabras singulares. Por lo tanto, puede ser beneficioso usar nombres de tablas en plural para evitar conflictos con las palabras clave de SQL.
fuente
Creo que la tabla SQL debería tener nombres plurales. Simplemente se lee mucho mejor.
Una tabla de registros de libros debería llamarse libros. El ORM debe usar la misma convención. El objeto Libros es una colección y preside todos los registros de la Tabla de libros. Un objeto Libro preside un solo registro.
Esto hace que la codificación sea más natural.
fuente
table.field
,author.authorName
está perfectamente bien. Obtenga el authorName de la tabla de autores. Cuando solo hay un autor, el plural también se ve mal.authors.authorName
cuando solo hay un autor? Eso es más confuso imo. Esto, por supuesto, se ha mejorado mucho ahora que hemos eliminado el estilo de oración mysql_ y tenemos mejores formas de acceder a los datos :)Después de trabajar con la programación durante algunos años, he concluido que la pluralización es una complicación innecesaria. Mi opinión es que, según la filosofía de KISS, un programador debe luchar por la solución más fácil y perezosa a todos los problemas por razones de tiempo y eficiencia. Por lo tanto, singular le brinda menos trabajo necesario en todos los escenarios.
fuente
Es algo muy personal. He estado usando la forma singular durante 30 años. Pero puedo ver por qué a la gente le gustan los plurales. Los libros - autores son interesantes ya que creo que los autores de libros no están equivocados. Un libro puede tener uno o más autores. Y los autores pueden haber escrito uno o más libros (por ejemplo, co-escrito). También depende de cómo manejes los libros escritos por más de un autor. Estoy de acuerdo con otras respuestas; elige uno y sé consistente. En lo que respecta a las palabras reservadas cuestiones. Creo que no es difícil encontrar nombres alternativos. usuario -> app_user, sesión -> app_session, order -> customer_order
fuente
Vemos las cosas desde diferentes perspectivas, y creo que los dos campos se identifican por:
Singular ("usuario")
La persona que hace una correlación entre el nombre de la tabla y el hecho de que representa un contenedor, que puede contener varias filas.
Entonces "contenedor de usuario" puede contener múltiples filas.
Plural ("usuarios")
La persona que no hace la correlación entre el nombre de la tabla y el hecho de que representa un contenedor. Por supuesto, saben que es un contenedor, pero no está ahí en el nombre.
Por ejemplo,
un "cartón de huevos" puede tener múltiples huevos, pero eso es obvio ya que la referencia del contenedor está en el nombre, lo que proporciona el potencial para múltiples huevos. Sin embargo, con el nombre de tabla singular "usuario", la referencia del contenedor no está allí en el nombre. por ejemplo, "user_container" probablemente sea aceptable para las personas que prefieren nombres en plural.
Creo que esto también se debe a que años de plural es una práctica común y en la mayoría del material de enseñanza en línea.
Dicho todo esto, creo que técnicamente hablando el singular es más preciso dado que estamos nombrando un solo contenedor, y los contenedores pueden contener múltiples (o simples) filas.
Parece incorrecto para las personas, ya que vinculan mentalmente el nombre de la tabla con el contenido (varias filas necesitan un nombre plural) en lugar de vincular mentalmente el contenedor nombrado con el contenido (un contenedor permite múltiples).
Como siempre, a menudo no hay un bien y un mal, y se trata más de lo que se adapta al escenario, y de ser coherente con lo que elijas.
Si solo está haciendo el proyecto y no hay una razón real para hacerlo, haga lo que considere mejor, o simplemente prefiera. Aplique lo mismo cuando esté en un equipo de desarrollo y simplemente tome una decisión unánime.
fuente