Autor Tema: Diseñando BD: Diferencia entre usuario y personal  (Leído 6032 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Diseñando BD: Diferencia entre usuario y personal
« en: Marzo 10, 2010, 02:52:26 pm »
En un software administrativo que tengo, el personal (vendedores y almaceneros) usan estrictamente el software para sus funciones, en este caso también son usuarios. Su usuario es su nombre y tiene un histórico de sus transacciones por las cuales sobre su sueldo como personal se le remunera con algun incentivo adicional. Ejemplo, un vendedor gana 600 monedas, ahora si venden mas de X montos gana 50 monedas encima de las 600. Esto se sabe por las ventas que el mismo registra en el sistema. Y por el contrario si un Personal rompe una mercancía se le registra un descuento de X monedas sobre su acumulado (Sueldo + Incentivos +...)

Ahora, en otra nueva empresa (Centro de Masajes y Sauna entre otras cosas) que recién voy a empezar a sistematizar, hay personal que no va a usar el sistema (mozos, masajistas, guardianes, limpiadores, etc), o probablemente algunos si lo usen (despachador, cocinero, etc) y personal que si o si va a usar (cajero, administrador, etc) y todos son Personal.
Pregunta:
¿Deberia considerar a TODO el personal como usuario? es decir ya tener su clave de acceso con las restricciones debidas. o
¿Seria mejor crear una tabla para el personal y otra para los usuarios?
Mi duda de hacerlo asi va en que el personal MARIO LOPEZ no tendria usuario y el personal JUAN QUIROZ también seria el usuario JUAN QUIROZ. Claro la otra seria que JUAN QUIROZ sea el usuario JQUIROZ y en este caso podria usar una sola tabla de Personal pero con dos campos adicionales (USUARIO y CONTRASEÑA)

¿Recomiendan verlo así? o tienen alguna otra sugerencia.

Muchachos, gracias por su tiempo y respuestas.

Saludos
Me encuentras en YAcosta.com

ssccaann43

  • Moderador
  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Diseñando BD: Diferencia entre usuario y personal
« Respuesta #1 en: Marzo 10, 2010, 06:01:11 pm »
Fijate no tiene nada que ver el uno con el otro... Los usuarios son simplemente usuarios... El software debes hacerlo tan robusto que permita generarte reportes de comisiones de ventas... Y en caso de tener un Módulo de nómina, que permita asignar dichas comisiones de ventas de los usuarios al pago del salario del personal... Más nada... Los usuarios del sistema son una cosa muy diferente al personal... Puedes tener al personal de LIMPIEZA registrado, pero es alguien que no accesará al software, por tal motivo no aplica allí darle clave de acceso...! Me sigues?
Miguel Núñez.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Dise�ando BD: Diferencia entre usuario y personal
« Respuesta #2 en: Marzo 10, 2010, 07:00:48 pm »
Fíjate no tiene nada que ver el uno con el otro... Los usuarios son simplemente usuarios... El software debes hacerlo tan robusto que permita generarte reportes de comisiones de ventas... Y en caso de tener un M�dulo de n�mina, que permita asignar dichas comisiones de ventas de los usuarios al pago del salario del personal... M�s nada... Los usuarios del sistema son una cosa muy diferente al personal... Puedes tener al personal de LIMPIEZA registrado, pero es alguien que no accesar� al software, por tal motivo no aplica all� darle clave de acceso...! Me sigues?

No recomiendas entonces ponerle al personal algún flag o campo que señale si es usuario del sistema o no, digo esto para no tener que crearme otra tabla.
Quiero decir si encuentras viable:

PERSONAL:
ID_PERS
Nombre
Direccion
Cargo
Sueldo
Telefono
Porcentaje 1
Porcentaje 2
Login    <--- agregar este campo (si esta vacio es q no puede ingresar al software)
Contrasena  <--- referente a la contraseña
Alcances  <--- Bueno con esto yo controlo a donde puede o no puede entrar en el soft

O tener esto
PERSONAL      USUARIO
ID_PERS ID_USU
Nombre ID_PERS
DireccionLogin
Cargo Contrasena
Sueldo Alcance
Telef
Porcent 1
Porcent 2

¿Que opinas?

P.D.: No he conseguido hacer en BBCODE el grosos de la tabla ¿es posible? creo que no.
Me encuentras en YAcosta.com

raul338

  • Terabyte
  • *****
  • Mensajes: 894
  • Reputación: +62/-8
  • xD fan!!!!! xD
    • Ver Perfil
    • Raul's Weblog
Re:Dise�ando BD: Diferencia entre usuario y personal
« Respuesta #3 en: Marzo 10, 2010, 07:45:18 pm »
Las 2 opciones son tentavias (no tengo mucha practica, asi que en lo que puedas, no me hagas caso :P)

Me gusta mas la segunda opcion (las 2 tablas) ya que a simple vista parece que respetan las formas normales. Al menos esa es mi opinion

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Dise�ando BD: Diferencia entre usuario y personal
« Respuesta #4 en: Marzo 10, 2010, 09:07:23 pm »
Las 2 opciones son tentavias (no tengo mucha practica, asi que en lo que puedas, no me hagas caso :P)

Me gusta mas la segunda opcion (las 2 tablas) ya que a simple vista parece que respetan las formas normales. Al menos esa es mi opinion

Un amigo por aca me dijo que el problema de hacerlo de la segunda forma es que para dar de alta un Usuario necesariamente debe darse de alta como Personal.
A lo que le respondi:
Administrativamente debe ser así, porque? porque cualquier persona que labore en la empresa en cualquier cargo es un Personal, y por tanto "podría" ser un Usuario del sistema, ¿porque tendría que registrar de usuario a alguien que no es un Personal de la empresa?
y la conversación termino.
Claro, yo seré un usuario pero no un personal, pero definitivamente alguien tendrá todos los permisos en sistema y para hacer pruebas usare su Usuario y Password. No podrá existir la pretencion de registrarme como Usuario sin ser Personal. Ahora si me contratan como trabajador de esa empresa entonces me registrare como Personal y tendré mis Usuario.
Así que hasta el momento veo las dos formas viables, necesito algún argumento por lo cual no pueda resolver cualquier problema usando una sola tabla: Personal con campos de usuario/password.
Me encuentras en YAcosta.com

raul338

  • Terabyte
  • *****
  • Mensajes: 894
  • Reputación: +62/-8
  • xD fan!!!!! xD
    • Ver Perfil
    • Raul's Weblog
Re:Dise�ando BD: Diferencia entre usuario y personal
« Respuesta #5 en: Marzo 11, 2010, 10:20:34 am »
Pero es que deberia ser asi, nadie puede entrar si no es personal, salvo por una excepcion, TU (los creadores) porque eres el "dios" del programa. Pero no podes dejar un usuario siempre en el sistema, seria como un agujero de seguridad. Tu debes tener otros programas que accedan al sistema. No se si me explico

Supongamos:
Tu le instalas el software, le preparas los usuarios, etc..
Cuando te piden que revises algo, actualizes, etc que requiera tu ingreso al sistema, no lo hagas desde el sistema en si sino de otro sistema "madre" que funcione de la misma manera pero que solamente tu puedas entrar

Si dejas un user "Administrador" o "MasterOfTheProgram" cualquiera lo ve y empezaria a buscar la contraseña.... es un agujero de seguridad, como dije. No hace falta que el creador deba tener un usuario, el creador debe buscar otras formas de la que el y solo él pueda entrar. Lo mejor que se me ocurre, es mediante una "copia" del sistema pero algo modificado

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Dise�ando BD: Diferencia entre usuario y personal
« Respuesta #6 en: Marzo 11, 2010, 12:40:21 pm »
Pero es que deberia ser asi, nadie puede entrar si no es personal, salvo por una excepcion, TU (los creadores) porque eres el "dios" del programa. Pero no podes dejar un usuario siempre en el sistema, seria como un agujero de seguridad. Tu debes tener otros programas que accedan al sistema. No se si me explico

Supongamos:
Tu le instalas el software, le preparas los usuarios, etc..
Cuando te piden que revises algo, actualizes, etc que requiera tu ingreso al sistema, no lo hagas desde el sistema en si sino de otro sistema "madre" que funcione de la misma manera pero que solamente tu puedas entrar

Si dejas un user "Administrador" o "MasterOfTheProgram" cualquiera lo ve y empezaria a buscar la contrase�a.... es un agujero de seguridad, como dije. No hace falta que el creador deba tener un usuario, el creador debe buscar otras formas de la que el y solo �l pueda entrar. Lo mejor que se me ocurre, es mediante una "copia" del sistema pero algo modificado

Que tal, bueno estoy en gran medida de acuerdo con lo que indicas.

Estuve escribiendote una respuesta para sustentar porque estoy de acuerdo en gran medida y no totalmente, pero se extendio demasiado mi respuesta y me desviaba del tema, así que decidí borrarla y podria ser esto un nuevo post.
El asunto es que (al margen de mi persona porque tengo mecanismos para entrar) finalmente cual seria la opinión final:
1 tabla (con campos para validar si es usuario)
2 tablas (una como personal enteramente y otra para usuario)

Que opinan?
Me encuentras en YAcosta.com

coco

  • Administrador
  • Terabyte
  • *****
  • Mensajes: 548
  • Reputación: +63/-3
    • Ver Perfil
Re:Diseñando BD: Diferencia entre usuario y personal
« Respuesta #7 en: Marzo 11, 2010, 02:01:30 pm »
Pero es que deberia ser asi, nadie puede entrar si no es personal, salvo por una excepcion, TU (los creadores) porque eres el "dios" del programa. Pero no podes dejar un usuario siempre en el sistema, seria como un agujero de seguridad. Tu debes tener otros programas que accedan al sistema. No se si me explico

Supongamos:
Tu le instalas el software, le preparas los usuarios, etc..
Cuando te piden que revises algo, actualizes, etc que requiera tu ingreso al sistema, no lo hagas desde el sistema en si sino de otro sistema "madre" que funcione de la misma manera pero que solamente tu puedas entrar

Si dejas un user "Administrador" o "MasterOfTheProgram" cualquiera lo ve y empezaria a buscar la contrase�a.... es un agujero de seguridad, como dije. No hace falta que el creador deba tener un usuario, el creador debe buscar otras formas de la que el y solo �l pueda entrar. Lo mejor que se me ocurre, es mediante una "copia" del sistema pero algo modificado

Que tal, bueno estoy en gran medida de acuerdo con lo que indicas.

Estuve escribiendote una respuesta para sustentar porque estoy de acuerdo en gran medida y no totalmente, pero se extendio demasiado mi respuesta y me desviaba del tema, así que decidí borrarla y podria ser esto un nuevo post.
El asunto es que (al margen de mi persona porque tengo mecanismos para entrar) finalmente cual seria la opinión final:
1 tabla (con campos para validar si es usuario)
2 tablas (una como personal enteramente y otra para usuario)

Que opinan?

Porque no agregas un campo mas en la tabla de usuarios UserType como INT, luego en el soft haces un ENUM con los tipos de usuario, por ejemplo:
Código: (vb) [Seleccionar]
Public Enum enTipoUsuario
   [Usuario] = 1
   [Personal] = 2
End Enum

y de ahi no te queda mas que comprobar si el campo UserType es Usuario o Personal basandose en el numero de la enumeracion.

saludos
'-     coco
(No me cabe: Java, Python ni Pascal)
SQLite - PIC 16F y 18F - ARM STM32 - ESP32 - Linux Embebido - VB6 - Electronica - Sonido y Ambientacion

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Dise�ando BD: Diferencia entre usuario y personal
« Respuesta #8 en: Marzo 11, 2010, 07:18:12 pm »
Citar
Porque no agregas un campo mas en la tabla de usuarios UserType como INT, luego en el soft haces un ENUM con los tipos de usuario, por ejemplo:
Código: (vb) [Seleccionar]
Public Enum enTipoUsuario
   [Usuario] = 1
   [Personal] = 2
End Enum

y de ahi no te queda mas que comprobar si el campo UserType es Usuario o Personal basandose en el numero de la enumeracion.

saludos

Podría ser tu idea, la veo interesante, haciéndole un ajuste final seria mi elección:
   [Usuario] = 1
   [Personal] = 2
   [Ambos] = 3


Me encuentras en YAcosta.com

ssccaann43

  • Moderador
  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Diseñando BD: Diferencia entre usuario y personal
« Respuesta #9 en: Marzo 12, 2010, 12:36:44 am »
Fíjate no tiene nada que ver el uno con el otro... Los usuarios son simplemente usuarios... El software debes hacerlo tan robusto que permita generarte reportes de comisiones de ventas... Y en caso de tener un M�dulo de n�mina, que permita asignar dichas comisiones de ventas de los usuarios al pago del salario del personal... M�s nada... Los usuarios del sistema son una cosa muy diferente al personal... Puedes tener al personal de LIMPIEZA registrado, pero es alguien que no accesar� al software, por tal motivo no aplica all� darle clave de acceso...! Me sigues?

No recomiendas entonces ponerle al personal algún flag o campo que señale si es usuario del sistema o no, digo esto para no tener que crearme otra tabla.
Quiero decir si encuentras viable:

PERSONAL:
ID_PERS
Nombre
Direccion
Cargo
Sueldo
Telefono
Porcentaje 1
Porcentaje 2
Login    <--- agregar este campo (si esta vacio es q no puede ingresar al software)
Contrasena  <--- referente a la contraseña
Alcances  <--- Bueno con esto yo controlo a donde puede o no puede entrar en el soft

O tener esto
PERSONAL      USUARIO
ID_PERS ID_USU
Nombre ID_PERS
DireccionLogin
Cargo Contrasena
Sueldo Alcance
Telef
Porcent 1
Porcent 2

¿Que opinas?

P.D.: No he conseguido hacer en BBCODE el grosos de la tabla ¿es posible? creo que no.
Yo me iria por la primera opcion...! alli defines sin mucho lios cual personal es usuario o no del software, incluso asignandole sus permisos con el alcance...! saludos
Miguel Núñez.