Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-01-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Ambas formas tienen un problema no comentado.

Después de terminar el programa tu cliente quiere una modificación urgente que echa por tierra tu nomenclatura (da igual si usas plurar o singular, tu cliente será capaz de destrozar ambas), ¿qué hacemos? ¿renombramos todo?

No hombre, sería una locura, ponemos un comentario con la fecha indicando el requerimiento y listo , aunque todo queda desajustado. Meses después, será un caos total.

Ahora mismo programas en plural, después te das cuenta de que usando el singular podrás ahorrar muchas líneas de código, hecho que aumentará tu productividad. Años después trabajas con una herramientas que a partir de la cardinalidad de una relación, te crea los objetos en plural o singular, o te abstrae de todo el proceso [...] ¿donde voy? Como dijo un compañero antes, no importa el método, lo que importa es que uses un método.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #2  
Antiguo 11-09-2014
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
Ya han pasado varios años desde que se inicio este hilo y hoy lo revivo porque me gustaría saber como siguen... ¿han cambiado o continúan nombrando las tablas como lo hacían antes?, yo sigo con los nombres en plural y con una llave única de tipo entero llamada Id, aunque he visto que unos recomienda llamar la llave única con el nombre de la tabla en singular y terminada en Id, algo así como:

Cita:
Perfiles
PerfilId
Nombre

Permisos
PermisoId
Nombre

PermisosPorPerfiles
PermisoPorPerfilId
PermisoId
PerfilId


Aunque yo prefiero algo así como:
Cita:
Perfiles
Id
Nombre

Permisos
Id
Nombre

PermisosPorPerfiles
Id
PermisoId
PerfilId


se me hace más ágil a la hora de hacer consultas.
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita
  #3  
Antiguo 11-09-2014
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Antiguamente usaba el plural pero posteriormente preferí el singular.

Por ahí se argumentó que se debe usar el plural porque se tendrán, por ejemplo varios clientes y no uno sólo. Pero ese mismo argumento nos llevaría a nobrar las clases en plural, TClientes.

Se argumentó también, en pro del plural, que el MER intenta reflejar la realidad. Y es por ello que prefiero el singular. Cuando modelo el sistema me interesa saber qué quiero de un cliente, qué representa una factura, qué atributos tiene un usuario, y no el conjunto de clientes, facturas o usuarios. Es decir, en el MER, lo que interesa es la entidad en sí, y no el contenedor de esas entidades.

Por otra parte, el uso del singular es consistente en las consultas SQL al hacer relaciones:

Código SQL [-]
select factura.*
from ...
where factura.clienteId = cliente.id

Si usamos el plural:

Código SQL [-]
where facturas.clienteId = clientes.id

¿qué estamos diciendo? ¿El id de todos los clientes? ¿El atributo clienteId de todas las facturas?

En cuanto a los campos, me parece redundante incluir el nombre de la tabla. ¿usuario.usuarioId? Pues, ¿de quién más iba a ser ese id de la tabla usuario?

Pero, desde luego, esas son las razones que a mi me sirven y no necesariamente todos lo ven de igual manera. Lo realmente importante es ser consistente.

// Saludos
Responder Con Cita
  #4  
Antiguo 11-09-2014
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 24
ContraVeneno Va por buen camino
sopas... ya me hiciste dudar Roman... Yo estoy optando por los nombres de las tablas en plural y definitivamente sí es redundante volver a poner otra vez el mismo nombre de la tabla

Pero con lo que comentas, me parece que tienes razón en poner el nombre de la tabla en singular. Aunque como siempre uso "alias", ni cuenta me doy:
Código SQL [-]
From Facturas F
join clientes C on F.ClienteID = C.ID
__________________

Responder Con Cita
  #5  
Antiguo 11-09-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.106
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Tabla en plural. Campos en singular.
Código:
tbClientes
  id
  nombre
  telefono

tbArticulos
  id
  nombre
  precio

tbVentas
  id
  numero  
  fecha
  idcliente
  
tbLineasVentas
  id
  idventa
  idarticulo
En cuanto a los nombres, alias, etc. nunca los uso, salvo que estén involucradas varias tablas
Código SQL [-]
select id, numero, fecha from tbVentas
Código SQL [-]
select v.fecha, v.cliente, c.nombre
from tbventas v
inner join tbclientes c on c.id=v.idcliente

Última edición por Casimiro Notevi fecha: 11-09-2014 a las 22:37:23.
Responder Con Cita
  #6  
Antiguo 11-09-2014
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Odio los alias

Al principio usaba alias pero me di cuenta que revisar una consulta SQL hecha meses o años atrás con alias es extenuante. Vamos, que usar alias para tablas del tipo c, u, f es como nombrar a tus variables var1, var2, var3.

En algunas ocasiones uso alias para campos para alguna necesidad particular en la que quiera usar un sinónimo, pero siempre alias que tengan un significado.

En tablas, sólo cuando es absolutamente necesario, por ejemplo, cuando una misma tabla se relaciona varias veces en la misma consulta.

// Saludos
Responder Con Cita
  #7  
Antiguo 11-09-2014
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
Sobre los alias yo siempre los uso ya que me de agilidad, y voy dando una cierta complejidad según la consulta, por ejemplo:

1. Para una consulta simple o una consulta con varias tablas pero con iniciales diferentes pongo el primer caracter de cada tabal:

Código SQL [-]
Select u.Nombre, u.Documento From Usuarios u where u.id = :id

Select 
     u.Nombre, u.Documento, f.Numero 
From Usuarios u 
inner join Facturas on f.UsuarioId = u.id 
where f.fecha between :f1 and :f2

2. Para consultas donde van más de 2 tablas o para 2 tablas con iniciales similares uso alias de tres letras, por ejmeplo:


Código SQL [-]

Select 
     usu.Nombre, usu.Documento, fac.Numero, fdp.Descripcion as formaDepago 
From Usuarios usu 
inner join Facturas fac on fac.UsuarioId = usu.id 
inner join FormasDePago fdp on fac.FormaDePagoId = fdp.id
where fac.fecha between :f1 and :f2
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita
  #8  
Antiguo 11-09-2014
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
A ver, pregunta maliciosa:

¿Por qué no nombras tus tablas como fac, fdp, usu y así te evitas los alias?



// Saludos
Responder Con Cita
  #9  
Antiguo 12-09-2014
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 24
BlueSteel Va por buen camino
Talking

Hola a Todos.... Tanto tiempo.. y aún con este gran Lio...

Singular o Plural... ese es el dilema ???

Con respecto a los Alias, casi nunca los utilizo..... por lo mismo que comentaba Roman... El tratar de acordarse que significa cierta letra en un codigo despues de varios años..... es un gran lio...

Saludos...
__________________
BlueSteel
Responder Con Cita
  #10  
Antiguo 11-09-2014
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
Cita:
Empezado por roman Ver Mensaje
Antiguamente usaba el plural pero posteriormente preferí el singular.

Por ahí se argumentó que se debe usar el plural porque se tendrán, por ejemplo varios clientes y no uno sólo. Pero ese mismo argumento nos llevaría a nobrar las clases en plural, TClientes.

Se argumentó también, en pro del plural, que el MER intenta reflejar la realidad. Y es por ello que prefiero el singular. Cuando modelo el sistema me interesa saber qué quiero de un cliente, qué representa una factura, qué atributos tiene un usuario, y no el conjunto de clientes, facturas o usuarios. Es decir, en el MER, lo que interesa es la entidad en sí, y no el contenedor de esas entidades.

Por otra parte, el uso del singular es consistente en las consultas SQL al hacer relaciones:

Código SQL [-]select factura.* from ... where factura.clienteId = cliente.id


Si usamos el plural:

Código SQL [-]where facturas.clienteId = clientes.id


¿qué estamos diciendo? ¿El id de todos los clientes? ¿El atributo clienteId de todas las facturas?

En cuanto a los campos, me parece redundante incluir el nombre de la tabla. ¿usuario.usuarioId? Pues, ¿de quién más iba a ser ese id de la tabla usuario?

Pero, desde luego, esas son las razones que a mi me sirven y no necesariamente todos lo ven de igual manera. Lo realmente importante es ser consistente.

// Saludos
Me viene unas duda...
1: En:
Código SQL [-]
Select
   Numero, Fecha, Valor, Descripcion
From Facturas
where Fecha between :f1 and :f2

El Resultado es un listado de varias facturas.

2. Cuando dice

Código SQL [-]
where facturas.clienteId = clientes.id

Veo que queda claro. ¿Porque? porque al decir Facturas.ClienteId entiendo que esta sacando un dato independiente (ClienteId) de un lugar donde hay muchos datos (Facturas)
Concuerdo con Roman de que poner en el nombre del campo sin usar algo que puedo inferir de el nombre de la tabla, osea si la tabla Facturas tiene un campo Id sobra llamarlo IdFactura o FacturaId
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita
Respuesta



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 00:05:58
tablas en sql server demasiadas tablas yeison Cristman SQL 8 10-08-2006 16:26:36
Tablas Dbf keys Conexión con bases de datos 2 03-11-2005 09:32:57
Tablas dbf. keys Conexión con bases de datos 2 13-10-2005 17:10:51
Dll con tablas brandolin OOP 1 19-08-2003 16:12:07


La franja horaria es GMT +2. Ahora son las 09:33:05.


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