¿Qué métodos de diseño de base de datos debo tener en cuenta al implementar un sitio web que se basará en los perfiles de usuario y la gestión de usuarios?

Una buena regla general es que cada tabla debe tener filas únicas. Por ejemplo, si un usuario puede tener dos perfiles, necesitaría dos tablas: una llamada perfiles y otra llamada usuarios. Entonces tendría un campo en la tabla de perfil que contiene el user_id (idealmente definido como una clave foránea). No tendría una tabla con dos filas para que el usuario indique dos perfiles (al menos no lo haría).

Otra regla general es usar identificadores y no texto para almacenar campos con opciones definidas. Entonces, supongamos que almacena el país de residencia por usuario. No almacenarías el texto USA en ese campo. Tendría una tabla llamada países, y si EE. UU. Tuviera un ID de 12, la tabla de usuario contendría el número 12 (y se definiría como un campo entero). Esto mantiene el tamaño de la base de datos bajo y también evita errores tipográficos y otros errores. Si se trata de un menú desplegable para el usuario, normalmente debería tener su propia (mini) tabla. No tengas miedo de tener 20 de esas tablas, te ahorrarán dolores de cabeza más adelante.

Hay dos formas de diseñar tablas en la base de datos. El primero es el enfoque de normalización, el segundo es el enfoque semántico.

En la normalización, estamos usando la columna de rastreo para evitar redundancia y actualizar o eliminar anomalías en la base de datos.

En semántica, utilizamos procesos de negocio impulsados ​​para diseñar tablas en la base de datos. Eso significa que, por lo general, un proceso en la aplicación tiene al menos una tabla primaria.

Por lo tanto, depende de cómo su aplicación nessecity para crear el diseño de la base de datos.

La primera regla básica sería usar ID en lugar de texto para las relaciones. Por ejemplo, si va a usar Roles de usuario, administre los Roles de usuario en una tabla separada y luego use role_id en la tabla de usuarios principal para identificar al usuario por el rol. Es aconsejable no dudar usando tantas tablas si es necesario. Le ahorrará la posibilidad de la complejidad de las cosas en etapas posteriores. La otra regla sería que cada fila no se repita en ningún momento en cada tabla, especialmente en las tablas mastar. Por ejemplo, si un usuario tiene 2 roles, use role_id separado por comas en lugar de tener 2 filas para el mismo usuario con diferentes roles_ids