Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di kjar
    Registrato dal
    Oct 2000
    Messaggi
    118

    [correttezza tab SQL] webrecall

    Ciao a tutti!
    Ho iniziato a creare uno script per un webrecall (tipo assistenza cliente, ticket)
    Sono ancora nelle fasi iniziali… quindi vorrei chiedere il vostro aiuto...
    Innanzitutto, vorrei verificare la correttezza delle tabelle in SQL

    Logica di funzionamento
    => gli utenti registrati possono essere utenti oppure amministratori.
    => ogni utente deve vedere solo i suoi ticket, vale a dire solo le sue richieste di assistenza.
    ==> per ogni richiesta di assistenza ci sarà una risposta dall’amministratore (ovviamente),
    la possibilità di replica da parte dell’utente e una ulteriore risposta dell’amministratore (cmq si creare questa "catena" di risposte-repliche). Ed è qui che mi vengono dei dubbi sulla correttezza della progettazione e normalizzazione del DB.

    Codice PHP:
    TABLE `utenti` (
    `
    usernamevarchar(10NOT NULL,
    `
    passwordvarchar(64NOT NULL,
    `
    authadminchar(1), // per capire se utente ha diritti di amministrazione
    PRIMARY KEY  (`username`)
    );

    TABLE `assitenza` (
    `
    idassitenzaint(11NOT NULL auto_increment,
    `
    idutenti int(11),
    `
    contattovarchar(50),
    `
    emailvarchar(25),
    `
    titolovarchar(50),
    `
    descrizioneproblematext,
    `
    statuschar(1), // devo capire se l’assistenza è "aperta" o "chiusa"
    `datadate,
    PRIMARY KEY  (`idassitenza`)
    );

    TABLE `risposta` (
    `
    idrisposta int(11NOT NULL auto_increment,
    `
    idassitenzaint(11),
    `
    risptext,
    PRIMARY KEY  (`idrisposta `)
    );

    TABLE `repliche` (
    `
    idreplicheint(11NOT NULL auto_increment,
    `
    idrisposta int(11),
    `
    risp_replicatext,
    PRIMARY KEY  (`idrepliche`)
    ); 
    Grazie!
    "Tutto è relativo. Prendi un ultracentenario che rompe uno specchio sarà ben lieto di sapere che ha ancora sette anni di disgrazie" - Albert Einstein

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    Per prima cosa manca l'id numerico agli utenti
    Non usare lo username, perchè come campo testuale sarà più lento ed inoltre non è collegato alle altre tabelle
    Quindi la tabella utenti la cambierei così
    Codice PHP:
    TABLE `utenti` (
    `
    idutenteint(11NOT NULL auto_increment,
    `
    usernamevarchar(10NOT NULL,
    `
    passwordvarchar(64NOT NULL,
    `
    authadminchar(1), // per capire se utente ha diritti di amministrazione
    PRIMARY KEY  (`idutente`)
    ); 
    La tabella assistenza invece la lascerei come l'hai fatta
    Codice PHP:
    TABLE `assitenza` (
    `
    idassitenzaint(11NOT NULL auto_increment,
    `
    idutenti int(11),
    `
    contattovarchar(50),
    `
    emailvarchar(25),
    `
    titolovarchar(50),
    `
    descrizioneproblematext,
    `
    statuschar(1), // devo capire se l’assistenza è "aperta" o "chiusa"
    `datadate,
    PRIMARY KEY  (`idassitenza`)
    ); 
    Mentre "unirei" le tabelle "risposte" e "repliche" in una unica tabella con un semplice identificatore che indica se si tratta di una "comunicazione" che viene dall'utente o di una risposta dell'assistenza, con un id che ne identifica l'ordine
    Codice PHP:
    TABLE `repliche` (
    `
    idreplicaint(11NOT NULL auto_increment,
    `
    idassitenzaint(11),
    `
    flagutenteset('0','1'),
    `
    risptext,
    PRIMARY KEY  (`idrisposta `)
    ); 
    In questo modo le "repliche" dell'assistenza avranno "flagutente" = '0' mentre le repliche dell'utente avranno 'flagutente' = '1' e ordinandole per "idreplica" avrai la discussione "utente vs assistenza" in un'unica sequenza

  3. #3
    Utente di HTML.it L'avatar di kjar
    Registrato dal
    Oct 2000
    Messaggi
    118
    ottima idea!!!! grazie
    "Tutto è relativo. Prendi un ultracentenario che rompe uno specchio sarà ben lieto di sapere che ha ancora sette anni di disgrazie" - Albert Einstein

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.