es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Esquema de base de datos para archivos/carpetas compartidas para usuarios/grupos.

Me gustaría crear un sistema simple para que los usuarios compartan documentos con otros usuarios O grupos.

Actualmente tengo tres modelos:

  • Usuario (información general del usuario)
  • Documento (tiene una carpeta principal)
  • Carpeta (solo un nombre)

Los principios son:

  • Las carpetas son solo de un nivel y contienen documentos. No se permite jerarquía.
  • Un usuario puede compartir una carpeta O un archivo con un usuario O un grupo.
  • Para que un usuario acceda a un documento, el documento O su carpeta principal deben ser compartidos con él, o con un grupo al que pertenezca.

Estas últimas condiciones hacen que sea muy difícil pensar en la estructura de la tabla. Agradecería mucho cualquier ayuda con esto.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para crear un sistema para que los usuarios compartan documentos con otros usuarios o grupos, necesitarás una base de datos con varias tablas. Aquí tienes un ejemplo de una posible estructura de tabla:

    Usuario

    • user_id (clave primaria)
    • nombre de usuario
    • correo electrónico
    • contraseña

    Grupo

    • group_id (clave primaria)
    • nombre de grupo

    Documento

    • document_id (clave primaria)
    • nombre de documento
    • ruta de documento
    • folder_id (clave externa)

    Carpeta

    • folder_id (clave primaria)
    • nombre de carpeta

    Documento_Compartido

    • share_id (clave primaria)
    • document_id (clave externa)
    • user_id (clave externa)
    • group_id (clave externa)

    Carpeta_Compartida

    • share_id (clave primaria)
    • folder_id (clave externa)
    • user_id (clave externa)
    • group_id (clave externa)

    La tabla de Usuario contiene información general del usuario, incluyendo nombres de usuario y contraseñas. La tabla de Grupo se utiliza para almacenar información sobre los grupos de usuarios. Las tablas de Documento y Carpeta almacenan información de documentos y carpetas, respectivamente. Las tablas de Documento_Compartido y Carpeta_Compartida se utilizan para hacer un seguimiento de qué documentos y carpetas se han compartido con quién.

    Para compartir un documento o carpeta con un usuario o grupo, crearías un nuevo registro en la tabla Documento_Compartido o Carpeta_Compartida. Este registro incluiría el ID del documento o carpeta que se está compartiendo, así como el ID del usuario o grupo con el que se está compartiendo el documento/carpeta.

    Para verificar si un usuario tiene acceso a un documento o carpeta en particular, simplemente verificarías la tabla Documento_Compartido o Carpeta_Compartida en busca de registros que coincidan con el ID del documento/carpeta y el ID del usuario o grupo en cuestión.

    En general, esta estructura de tablas debería permitirte crear un sistema simple pero efectivo para compartir documentos con otros usuarios o grupos.

Comments are closed.