Hola a todos, tengo una duda no existencial pero si de curiosidad. Trabajando con Symfony2, aunque supongo que es aplicable a cualquier cosa, a la hora de hacer una tabla, el nombre que le damos a las tablas, por ejemplo tenemos:
- Artículos
- Comentarios
Como veis lo he puesto en plural, pero claro, la entidad también se llama en plural. No está mal ya que controlamos con los repositorios tanto un articulo como varios artículos como es lógico. Ahora cuando hacemos un objeto de un articulo para añadirlo a la base de datos lo llamamos artículos.
Mi pregunta es, ¿Qué se considera buenas practicas, Articulos
o Articulo
en la tabla o en la entidad?
Se que es una chorrada, pero querría saber como se mueve la cosa en este sentido.
Un saludo
Respuestas
En el capítulo sobre buenas prácticas con Doctrine2 no se menciona nada al respecto, pero en general, siempre verás los nombres de las entidades de Doctrine en singular. Esto tiene sentido porque en tu código sueles manipular una sola entidad a la vez (por ejemplo, cambias el título o el contenido de un solo artículo, no de varios artículos a la vez).
Por otra parte, como por defecto Doctrine utiliza para la tabla de la base de datos el mismo nombre que el de la entidad, al final las tablas también suelen ir en singular. En este caso sí que las opiniones están muy divididas y hay tanta gente que defiende las tablas en singular como en plural. Pensando de la misma manera que antes, quizás tendría algo más de sentido que fuera en plural, ya que al fin y al cabo, en una tabla no guardas un solo artículo sino varios.
Si quieres seguir esta filosofía de trabajo (entidades en singular y tablas en plural) utiliza la anotación @Table
para establecer a mano el nombre de la tabla:
/** * @Entity * @Table(name="articulos") */ class Articulo { // ... }
Si quieres ver muchos más ejemplos de cómo crear buenas clases de tipo Entity
, echa un vistazo al directorio Models dentro de la carpeta de los tests del repositorio de Doctrine.
@javiereguiluz
:o muchas gracias, mirando esas entidades...
@AlbertoVioque