Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    166

    Impostazione classi derivate e organizzazione tabelle

    Ciao a tutti,
    mi spiego meglio perchè forse il titolo non è proprio esaustivo.


    L'esempio a cui mi riferisco è puramente teorico


    Partendo dalla superclasse Persone con tutte le proprietà che identificano l'anagrafica di una persona (nome, cognome, indirizzo, data_nascita ecc.) e supponendo di voler gestire poi questi dati nel database nella corrispondente tabella persone,
    vorrei sapere qual'è il modo migliore per gestire le classi derivate (esempio studenti e impiegati) e l'organizzazione delle tabelle per la gestione dei dati delle sottoclasssi (matricola per gli studenti, anno_di_assunzione, reparto, livello per l'impiegato)


    per il momento vorrei solo concentrarmi sulla superclasse persone e sulle classi derivate studenti e impiegati tralasciando eventuali ulteriori dati correlati da gestire (esempio esami degli studenti)


    Qualcuno può dirmi qual'è il modo migliore di impostare le classi e le tabelle del database?
    dovendo registrare uno studente è giusto pensare di gestire parti delle informazioni nella tabella persone e parti delle informazioni nella tabella studenti?

    Grazie

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Il miglior modo di procedere è studiare UML ed applicarne i concetti.

  3. #3
    Quote Originariamente inviata da artex Visualizza il messaggio
    Qualcuno può dirmi qual'è il modo migliore di impostare le classi e le tabelle del database?
    dovendo registrare uno studente è giusto pensare di gestire parti delle informazioni nella tabella persone e parti delle informazioni nella tabella studenti?

    Grazie
    dipende da come vuoi strutturare l'applicazione. Puoi usare un tabella "persone" con i dati sia di studenti che impiegati (che sono gli stessi), oppure puoi avere 2 tabelle distinte dipende dalle necessità

    supponendo di voler gestire poi questi dati nel database nella corrispondente tabella persone
    se dici questo allora 1 tabella "persone"

    per quanto riguarda le classi:
    Codice PHP:
    abstract class person {
      
    // metodi comuni
    }

    class 
    student extends person {
      
    // metodi specifici
    }

    class 
    worker extends person {
      
    // metodi specifici

    qui ci sono mille implementazioni possibili
    Questa volta, più che un voto.. è favoreggiamento.

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Quote Originariamente inviata da Al_katraz984 Visualizza il messaggio
    ...
    qui ci sono mille implementazioni possibili
    Appunto, dal momento che si hanno esigenze particolari, meglio studiarsi UML e progettare l'applicazione con metodo.
    Chiedendo ad altri in questi casi si finisce per non avere la risposta corretta dato che si è aperti a diverse interpretazioni.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    166
    ok studio uml, ma chiederei comunque un'indicazione.
    supponendo di avere le classi persone e la classe impiegati, è corretto pensare di gestire i dati in due tabelle distinte e creare metodi ad hoc in entrambe le classi per l'inserimento e la modifica dei dati?
    chiedo quale potrebbe essere l'organizzazione più efficiente in modo da sfruttare la massimo l'ereditarietà anche sui metodi che si occupano di accedere ai dati.
    in fondo si tratta dell'esempio più classico persone impiegati.
    Qualcuno potrebbe dirmi come imposterebbe i metodi?

    Grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    166
    Rispondo ad Al_Katraz984 a cui chiedo gentilmente un parere,
    i dati di persone e impiegati non sono gli stessi, un impiegato ha la data_assunzione, il livello, lo stipendio, mansioni ecc. ma ha tutti i campi della persona.
    Volendo strutturare i dati in due tabelle quali sono gli accorgimenti da seguire nella impostazione delle classi per l'accesso alle due tabelle?



  7. #7
    ma ti servono due entity diverse o devi gestire solo impiegati? no perchè se il tuo sistema ha solo impiegati è inutile che ti stai a fare ste pippe mentali
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  8. #8
    Quote Originariamente inviata da artex Visualizza il messaggio
    Rispondo ad Al_Katraz984 a cui chiedo gentilmente un parere,
    i dati di persone e impiegati non sono gli stessi, un impiegato ha la data_assunzione, il livello, lo stipendio, mansioni ecc. ma ha tutti i campi della persona.
    Volendo strutturare i dati in due tabelle quali sono gli accorgimenti da seguire nella impostazione delle classi per l'accesso alle due tabelle?


    dipende dalle esigenze che ha il tuo sistema.. o mantieni le due tabelle separate, o associ le tabelle con un indice oppure tieni una tabella unica

    i 3 casi:

    person
    id | nome | cognome | eta
    worker
    id | nome | cognome | eta | data_assunzione | qualifica

    person
    id | nome | cognome | eta
    worker
    pid | data_assunzione | qualifica

    people
    id | nome | cognome | eta | data_assunzione | qualifica


    per decidere qual'è la soluzione migliore bisogna che spieghi cosa vuoi fare.. come dice Santino87_02 sembrerebbe quasi che basta solo una tabella "worker" o come lo chiami tu "impiegati"
    Questa volta, più che un voto.. è favoreggiamento.

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    166
    Il problema è di capire come posso sfruttare l'ereditarietà.
    Diciamo che in un progetto ho già la classe persone che gestisce gli attributi dell'anagrafica e metodi di accesso al database nella sua propria tabella persone.
    E' corretto pensare di fare la classe derivata impiegati sfruttando di già la classe persone e gestire quindi i soli attributi di impiegato visto che quelli di persona sono già gestiti?
    Se la risposta è sì come dovrei impostare le classi e i metodi?
    Spero di essermi spiegato

  10. #10
    che collegamento c'è tra "persona" e "impegato" oltre alla generalizzazione?

    non si capisce bene cosa identifica la classe "persona" è troppo generica..
    Ultima modifica di Al_katraz984; 21-11-2013 a 18:29
    Questa volta, più che un voto.. è favoreggiamento.

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.