Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros temas > La Taberna
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-11-2007
alapaco alapaco is offline
No confirmado
 
Registrado: jun 2003
Ubicación: Buenos Aires
Posts: 287
Poder: 0
alapaco Va por buen camino
[Tablas] ¿ Plural o singular ?

Estamos teniendo una discusión teórica con mis compañeros de trabajo.

Los nombre de las tablas deberian ir en plural o en singular ???
O sea Empleado o Empleados ??? Cliente o Clientes ??

La discusión solo es por el nombre de las tablas, no de clases u otra cosa.

Yo estoy convencido que debe ir en plural porque se hace referencia a varios Clientes (en el caso de clientes, obvio).

Que opinan ustedes ??
Responder Con Cita
  #2  
Antiguo 23-11-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Yo opino lo mismo que vos, pero definitivamente es una politica de desarrollo que se debe definir en grupo y todos estar de acuerdo en adoptar sea cual sea la conclusión .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #3  
Antiguo 23-11-2007
alapaco alapaco is offline
No confirmado
 
Registrado: jun 2003
Ubicación: Buenos Aires
Posts: 287
Poder: 0
alapaco Va por buen camino
Si totalmente de acuerdo, eso lo tenemos definido ya, por eso aclaré que era una discusión teórica. :P
Responder Con Cita
  #4  
Antiguo 23-11-2007
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
desde mi humilde perspectiva debe ser plural.

el princio es sencillo, la empresa tiene UN cliente o tiene CLIENTES?

suerte.

Un cliente tiene Un estado o puede tener uno entre varios ESTADOS?
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #5  
Antiguo 23-11-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
mmm... plural... yo diría que es obvio el porque, pero en fin... yo defino los nombres de las tablas en plural.
__________________

Responder Con Cita
  #6  
Antiguo 23-11-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Pues yo opino que singular, ¡¡ toma ya !!

Sobre gusto los colores, pero si después tengo que hacer una clase, normalmente le llamaré TFactura, y ya tenemos el lío padre, en delphi singular, en la BBDD plural.

Y aunque no viene al caso, la clave primaria siempre que se pueda tendrá el formato :'ID' + nombretabla

El campo principal, Por ejemplo, de la tabla "cliente" se llamará igual que la tabla, useasé: Cliente (nada de "Nombre" "Denominacion", etc).

Ahora mismo tengo un diseño así, un simple Frame con un dbnavigator, un grid y el botón de imprimir, me permite administrar 5 tablas distintas con solo pasar el nombre de la tabla (otra razón más para que sea en singular).

Si tienes que crear SQLs de update, insert, etc, usando esta nomenclatura es un juego de niños.

Las claves ajenas (foráneas) de igual nombre que la de su tabla de origen, por ejemplo:
Código:
tabla Cliente:
     idcliente autoinc,
     Cliente varchar 100

tabla Factura:
     idFactura autoinc
     Factura  char(15) /* el número de factura */
     idcliente  (clave ajena)
Cuando se tienen muchas tablas, se agradece esta filosofía, porque tienes que recordar lo mínimo posible, las SQLs salen sin pensar.

PD: Me ha gustado mucho este tema, fijaté .

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 23-11-2007 a las 23:51:38.
Responder Con Cita
  #7  
Antiguo 23-11-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Yo no tengo mucha experiencia en el tema, más que nada en PHP, pero, lo que hago es nombrar las tablas en plural, y, a cada campo, le añado el prefijo de la tabla en singular... es decir, por ejemplo:

Tabla: users

Campos: user_id, user_name, user_email, etc.

__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #8  
Antiguo 24-11-2007
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Obviamente es un Plural...¿Por que?

Por definición una tabla es un conjunto de filas (y columnas), inclusive nadie diseña pensando en un cliente, una factura, un albarán...siempre son más de uno por lo que el plural viene siendo más que obvio.

Ojo, no confundirse con el modelo de objetos ya que ahi si la cosa puede cambiar. Así pues tendremos una clase cliente, una clase factura, y una clase albarán...pero estamos hablando de mundos distintos, lo que para el modelo E-R es una tabla Facturas para el modelo OO es una Colección de objetos factura. En la vida real siempre decimos "pásame las facturas" y lo que nos dan es un folder (carpeta) que contiene varias "instancias" de la misma cosa, una factura por lo que el concepto de un objeto que sea a la vez muchos pues no cabe. Por eso tenemos un TFactura y no TFacturas, pero si un TFolder que contiene muchas TFactura.

Pero bueno, la conclusión lisa y llana es: Sí, las tablas deben nombrarse en plural.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #9  
Antiguo 24-11-2007
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Yo opino como Lepe...

Debe ser Singular...

comparto lo de poliburro, una empresa tiene Cliente o Clientes?

Sigamos con la Tabla CLIENTE.. (es mi diseño..)

pero si lo miras de la perpectiva de que una tabla de almacena datos y que ese conjunto de campos es un registro, entonces como te refieres a ese cliente

Clientes (Juan Perez.. direccion x, Telefono x ) o te refiere como

Cliente (Juan Perez.. direccion x, Telefono x )

Mirandolo desde el punto de vista semántico.. cada registro se analisa en forma independiente... por lo cual (a no ser que imprimas).. cuando realizas un ingreso de datos (que no sea masiva..).. estas ingresando 1 cliente.. y no 1 clientes....

También recuerdo que algun ramo de la Univ. me indicaron que se debe considerar el nombre de la tabla en singular...
__________________
BlueSteel
Responder Con Cita
  #10  
Antiguo 24-11-2007
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Talking Tablas en Singular....

completando lo anterior.. me puse a buscar información dentro de mis apuntes. y pude encontrar esto

TEMA: CONVENCIONES DE NOMBRES

- Los nombres de las tablas deben ser únicos dentro de un sistema.
- Los nombres de las columnas deben ser únicos dentro de una tabla.

- Seleccione los nombres de tablas y columnas con cuidado.

- Los nombres de tablas y columnas no sólo identifican, sino también describen cada tabla y columna.

- Seleccione los nombres de tablas y columnas en conjunto con los usuarios. (muy poco utilizado)

- Elija nombres de tablas y columnas que sean lo más cortos posibles.

- Acrónimos que son de entendimiento común son válidos; sin embargo, se deben evitar formas crípticas o indescifrables.

Use el singular en vez del Plural.

La experiencia indica que (al menos en Inglés) el singular es más compatible con el modo en que comúnmente se usan los nombres de tablas y columnas en discusiones y documentación escrita del sistema.
__________________
BlueSteel
Responder Con Cita
  #11  
Antiguo 24-11-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cita:
Empezado por dec Ver Mensaje
Tabla: users

Campos: user_id, user_name, user_email, etc.

... Hombre... con tus 400 pulsaciones por minutos te lo puedes permitir, yo soy más lento

Cita:
Empezado por AzidRain
Por definición una tabla es un conjunto de filas.
Pero bueno, la conclusión lisa y llana es: Sí, las tablas deben nombrarse en plural.
El nombre de la tabla que yo propongo es singular y también se refiere a un conjunto de filas, es decir, si la definición ya implica el concepto de "conjunto" ¿por qué ponerlo en plural?

No sé AzidRain, has sonado muy tajante en tu afirmación. Yo, desde luego, me he basado en mi opinión personal y mi experiencia (de hecho recuerdo un sistema de BBDD en oracle de una multinacional, realizado por auténticos gurús de la programación y diseño; todas las tablas eran en singular). Al principio me impactó eso de que todo se llamara igual, pero cuando ví unas 300 tablas, comprendí el diseño.

Actualmente uso muchos trucos de aquel sistema.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #12  
Antiguo 24-11-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Cita:
Empezado por BlueSteel Ver Mensaje
La experiencia indica que (al menos en Inglés) el singular es más compatible ...
Pues ese será el punto mi buen BlueSteel, será que al menos yo, no programo en inglés y para mi, es mas compatible pensar en la tabla de clientes, que en la tabla cliente. Así, mis consultas salen solas

Cita:
Empezado por Lepe Ver Mensaje
Cita:
Empezado por dec
Tabla: users
Campos: user_id, user_name, user_email, etc.
... Hombre... con tus 400 pulsaciones por minutos te lo puedes permitir, yo soy más lento
Aqui no me queda más que decir que: opino lo mismo que maese Lepe. Con mis 50 palabras por minuto no puedo darme ese lujo.

Cita:
Empezado por Lepe Ver Mensaje
Actualmente uso muchos trucos de aquel sistema.
Ese tendría que ser el punto, aprender trucos de aquí y de allá, y que cada quien se adapte a su estilo de programación, o al estilo de programación que maneje el grupo de trabajo (que generalmente lo define el lider de proyecto).

En fin, ya lo dice el viejo y sabio proverbio chino:
Cada quien sus cochinas mañas
__________________

Responder Con Cita
  #13  
Antiguo 24-11-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
aqui si son lo maximo, todo un debate por saber si la tabla debe llevar una s o no

yo opino el plural, se refiere a lo que vas a almacenar, y esperemos que al empresa no almacene cliente sino clientes, de lo contrario ni pa que el sistema
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #14  
Antiguo 24-11-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Buenas...
Yo pienso que debe responder al contexto del problema. Y por lo general, esto conduce una percepción pluralista de las entidades. Considero que si el nombre refleja un hecho del dominio, del contexto, es más útil para llevar a cabo el correcto diseño y mantenimiento.

Ahora, ese contexto y problema debe ser aceptado por quienes componen el equipo de proyecto (si es uno... bueno... no hay drama). Si todos están de acuerdo a que es PEPE y no PEPITOS... pues que se llame PEPE. ¿Quienes deben participar? Todos: hasta el usuario final, que como dice Azid por lo general no se lo toma en cuenta. ¿Porqué debe participar? La respuesta, con esta pregunta: ¿Quien mejor para indicarnos el nombre adecuado que el sujeto o actor que está envuelto en el contexto?
Esto no es nuevo, ya lo han dicho pero puede que en ocasiones un integrante del equipo hace un cambio en X y si para alguien ese X es Y... pues vamos mal.

Curiosamente, a las tablas las nombro en castellano... pero cuando programo lo hago en inglés.

Lo que considero contraproducente para el equipo es que sea el jefe el que indique el estilo de programación. Para mi debe salir desde el grupo, y no de uno solo.

Por ahora, yo vengo declarandolas en plural a menos que el contexto me indique lo contrario. Pero ultimamente estoy tratando de conducir un diseño y estilo dirigido hacia el contexto o dominio. Antes, (cuando hacía practicas en la facultad) veía en los casos de tablas intermedias nombres como USUARIOS_VENTA. ¿Que representa USUARIOS_VENTA? Eso no me indica nada a mi... es más... dificulta entender el dominio. La nomeclatura debe adaptarse al contexto de modo que con una leída pueda entenderse que registra.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #15  
Antiguo 24-11-2007
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
Yo trabajo con el nombre de las tablas en plural, los campos en singular y con un auto numérico id, y cuando tengo un campo a manera de foreign key se llama en singular como la tabla a la que esta relacionada (ejemplo el campo que me relaciona con la tabla facturas se deberá llamar factura y es el mismo campo id en dicha tabla), no me gusta cuando una tabla tiene sus campos que empiezan con el mismo nombre de la tabla, en si por compatibilidad... yo se que siempre una tabla personas va a tener un campo nombre y no un perNombre.... en fin... son gustos
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita
  #16  
Antiguo 24-11-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Y si... es como dices: son gustos.

En cuanto a los campos, yo los llamo por las "propiedades" de la entidad a la que representa: Nombre, Color, etc... Exceptuando aquellos campos que son claves, hago así:
Si la clave es primaria: IDTabla[-s]
Si la clave es foranea: ID[Campo]Tabla[-s]

La idea es que el nombre haga referencia a la tabla. [Campo] Corresponde al nombre que se le debería asignar al identifiador. Por ejemplo el ID de un usuario podría ser el DNI, de modo que si si tenemos las tablas Usuarios y Ventas yo tengo: IDUsuario en la tabla Usuarios e IDDniUsuario en la tabla Ventas. Mi cerebro ya se acostumbró a interpretar y traducir esto:
IDUsuario: "Identificador del usuario", IDDniUsuario: "DNI del usuario"
[-s] Hace referencia a que se debe quitar la pluralidad. Noten que si bien la Tabla es USUARIOS, la clave queda sin la S.

La Tabla responde a un conjunto, pero es el campo que me indica la individualidad.

Puede parece un poco criptico, pero cuando uno se acostumbra...

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #17  
Antiguo 24-11-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Yo la verdad es que no he leído mucho sobre bases de datos, ni tampoco tengo mucha experiencia, la verdad. Lo hago como he dicho porque lo he visto hacer en otros proyectos, y, bueno, tampoco me he parado a pensar en si es la mejor forma o puede haber otras mejores.

Creo que no está mal identificar a cada campo con un prefijo, es decir, en lugar de:

Tabla: users

Campos: ID, login, name, password, etc.

Creo que algo como:

Tabla: users

Campos: user_id, user_login, user_name, user_password, etc.

Puede resultar curioso por varios motivos. Por ejemplo, cuando se trata de relacionar tablas, es bastante sencillo referirte a campos como "user_id" y "link_id" sin ambiguedades, aunque, efectivamente, podría usarse el nombre de la tabla en estos casos.

Quizá ya menos se puedan dar casos como:

Código PHP:

$login 
$u->login
En que acaso no queda muy claro qué es "$u", pero, reconozco también que un mejor identificador para la variable podría servir, y de hecho me encuentro a veces con cierta "redundancia", como pueda ser:

Código PHP:

$login 
$user->user_login
Pero, no sé, ya digo... es como me he acostumbrado, aunque nunca es tarde para cambiar las formas, ahora mismo estoy trabajando así en el proyecto que estoy desarrollando ahora mismo. Quizás, es cierto, el tener varios cientos de pulsaciones por minuto ayude o haga que no se note tanto el asunto.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #18  
Antiguo 24-11-2007
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Yo aunque creo que daba casi 500 pulsaciones por minuto y no es broma, pues me entrene pasando apuntes de clase, tacos y tacos de folios....

Los nombre de las tablas siempre los pongo en plural, partiendo de que antes que existieran los ordenadores y las tablas ya había ficheros, de cartón o metálicos...

Yo por ejemplo tenía y tengo aún un fichero de cartón en donde tenía fichas, cartulinas en blanco que iba rellenando con el nombre del autor del libro, título, editorial, páginas etc.

Que etiqueta contenía ese fichero: LIBROS

En las empresas los antiguos ficheros: CLIENTES, PROVEEDORES, EMPLEADOS...


Sin embargo suelo tener una tabla que se llama CONFIGURACION, porque en ella hay solamente un registro, que contiene los distintos campos configurables...

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #19  
Antiguo 24-11-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Cita:
Empezado por dec Ver Mensaje
Por ejemplo, cuando se trata de relacionar tablas, es bastante sencillo referirte a campos como "user_id" y "link_id" sin ambiguedades, aunque, efectivamente, podría usarse el nombre de la tabla en estos casos.
En SQL, trato de evitar las ambigüedades utilizando un alias para los nombres de las tablas, por ejemplo:
Código SQL [-]
Select F.Factura, DF.Factura, F.Cliente, C.Cliente
From Facturas F
join DetalleFacturas DF on F.Factura = DF.Factura
join Clientes C on F.Cliente = C.Cliente

Aunque claro esta, que esto es a lo yo me he acostumbrado y se me hace muy fácil leer esa consulta.

Cita:
Empezado por marcoszorrilla Ver Mensaje
Sin embargo suelo tener una tabla que se llama CONFIGURACION, porque en ella hay solamente un registro, que contiene los distintos campos configurables...
Y me atrevería a asegurar, que si fueran varios registros de configuración, la tabla se llamaría "Configuraciones"
__________________

Responder Con Cita
  #20  
Antiguo 24-11-2007
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Así es ContraVeneno.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Tablas dbf patorecalde Tablas planas 4 04-12-2008 01:05:58
tablas en sql server demasiadas tablas yeison Cristman SQL 8 10-08-2006 17:26:36
Tablas Dbf keys Conexión con bases de datos 2 03-11-2005 10:32:57
Tablas dbf. keys Conexión con bases de datos 2 13-10-2005 18:10:51
Dll con tablas brandolin OOP 1 19-08-2003 17:12:07


La franja horaria es GMT +2. Ahora son las 12:09:42.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi