entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

-1voto

Tengo la idea de como hacerlo solo que me pregunto si es recomendable crear varias tablas para cada tipo de usuario con una es suficiente

3 Respuestas

3votos

juaniquillo Puntos1730

La pregunta como tal no se relaciona a lo que quieres porque no tiene que ver con OOP, así que respondo tu inquietud del contenido del mensaje.

No se si te sirve mi caso pero yo uso sólo una tabla con un capo de "nivel" el cual especifica el el nivel del usuario:

1 = usuario
8 = moderador
9 = admin
10 = super admin

De esta forma puedo verificar cosas como:

//viene de la base de datos
$nivel;

if($nivel == 10){
    //solo super administrador
}

if($nivel >= 8){
    //area administrativa
}

$permisos_ar = array(8, 10);

if(in_array($nivel, $permisos_ar)){
    //solo moderador y super administrador
}

Me gusta dejar números disponibles entre usuarios regulares y administradores por si acaso surgen otros tipos de usuarios.

0voto

iphp comentado

Gracias! creo que formule mal mi pregunta, lo de PHP OO solo lo mencione para evitar los malos habitos de programacion y pensar en objetos y clases. Suena interesante lo que dices y por ahi va, de acuerdo al nivel del usuario como serian las consultas para mostrarle el contenido segun si nivel?, necesitara usar una foreign key???

2votos

Leonardo-Tadei Puntos227320

En tu pregunta hacés referencia al almacenamiento en tablas: normalizando la DB te quedará una sola tabla con Usuarios, en la que tendrás un número de prefil, que podr'aser suficiente o una relación con una tabla de perfiles en la que haya más datos, como por ejemplo el nombre y alguna descripción.

Luego vamos a la parte de Objetos, que no tiene que ve con la normalización ni con las tablas: un diseño posible para esto es tener una clase Usuario con los datos de cada uno, y una clase Accesos o Seguridad (o algún nombre representativo) que tenga como métodos login($unUsuario) y logout(unUsuario) es decir, que ambos métodos esperen como mensaje una instancia del Usuario, y ahí se determine si es válido y cuál es su perfil.

Entonces, dependiendo de ese perfil, seguirá adelante la visualización o serás redirigdo a la pantalla de inicio de sesión.

Hay otras alternativas, pero esta es una signación d responsabilidades de los Objetos bastante habitual, y correcta desde el punto de vista de la POO.

1voto

edu_avila Puntos190

utiliza una sola tabla, pero con un id generado que identifique al tipo de usuario, en base a eso, lo demas es historia

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta