Así es como lo hago:¿Existe una convención de nombres para MySQL?
- nombres de tabla son minúsculas, utiliza guiones para separar las palabras, y son singulares (por ejemplo, 'foo', 'foo_bar', etc.
- por lo general (no siempre) tener un auto incremento PK. Yo uso la siguiente convención: tablename_id (por ejemplo, 'foo_id', 'foo_bar_id', etc.).
- Cuando una tabla contiene una columna que es una clave externa, solo copio el nombre de la columna de esa clave de cualquier tabla de la que proviene. Por ejemplo, supongamos que la tabla 'foo_bar' tiene el FK 'foo_id' (donde 'foo_id' es el PK de 'foo').
- Al definir FKs para enfo Respecto a la integridad referencial, uso lo siguiente: tablename_fk_columnname (p. avanzando el ejemplo 3, sería 'foo_bar_foo_id'). Como se trata de una combinación de nombre de tabla/nombre de columna, se garantiza que será único dentro de la base de datos.
- que ordenar las columnas como esta: PKs, FKS, a continuación, el resto de las columnas alfabéticamente
¿Hay una mejor manera, más estándar de hacer esto?
¿Es incorrecto usar para incremento automático PK jus? t "id"? ¿Por qué? El nombre de la columna tiene significado solo en el contexto de la tabla. Entonces tengo una "identificación" en cada tabla, y puedo tener muchos id_ para FK. –
Zbyszek
@Zbyszek Creo que la razón más simple contra eso es simplemente por coherencia/simplicidad. En lugar de tener 'id_tableB' => * oh no * ** columna de nombre diferente **' id', la consistencia de 'id_tableB' =>' id_tableB' simplemente se ve más ordenada ... o como OP lo hace: 'foo_id' => 'foo_id' en lugar de' foo_id' => 'id' – mmcrae