database - una - ¿Cuál es la mejor práctica para nombrar su tabla de "usuario"?
view lenta mysql (4)
Aquí hay tres mejores prácticas que intento seguir al nombrar tablas:
- Nunca nombre una tabla con plural (como "usuarios")
- Nunca nombre una tabla con una palabra clave reservada (como "usuario")
- Nunca prefija el nombre de su tabla con "tbl" o algún otro prefijo de tipo de objeto
Teniendo todo esto en mente, ¿cómo recomiendas nombrar la tabla que contendrá las identidades de los usuarios?
Acepto, no use palabras reservadas, palabras entre corchetes o escapadas de palabras reservadas.
Nombra la persona de la tabla de usuario.
Puede que le interese esta respuesta y google para la norma ISO 11179 para la nomenclatura de Pautas
Normalmente uso algo como miembro o cuenta, dependiendo de la aplicación. Dicho esto, si usa principios y herramientas de diseño moderno (por ejemplo, una capa de abstracción db u ORM con una base de código orientada a objetos que separa la lógica empresarial del acceso a datos), el nombramiento de la tabla se vuelve irrelevante. Sus desarrolladores solo deben acceder a la base de datos a través de una interfaz bien definida y no escribiendo manualmente SQL que les obligue a conocer el nombre de la tabla. Por ejemplo, puede asignarle un nombre a la cuenta de la tabla pero asignarle el acceso mediante un objeto llamado Usuario. Sus desarrolladores no deberían pensar en términos de tablas, sino en términos de objetos de acceso, que no van a tener las mismas restricciones para nombrar:
$user = new User($username);
$user->authenticate($password);
Use un sinónimo Qué palabra usar depende de qué almacena exactamente en la tabla, pero la account
me parece una buena alternativa. Si desea utilizar un user
variación, rompería la primera directriz que menciona, no la segunda o tercera: los users
son lo suficientemente comunes como para que la inconsistencia sea esencialmente mnemotécnica.
Uso las reglas de CakePHP incluso cuando no uso el marco:
Los nombres de tabla son, por convención, minúsculos y pluralizados con nombres de tabla de varias palabras separados por guiones bajos. Por ejemplo, un nombre de Modelo de Ingredient
espera los Ingredient
del nombre de la tabla . El nombre de modelo de EventRegistration
esperaría un nombre de tabla de event_registrations
.