Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [Diagramma ER] Da specifiche a schema (reificazione?)

    Salve a tutti. Ho delle semplici specifiche e vorrei trovare il modo migliore per tradurle in schema E-R per poi realizzare il database

    Le regole sono queste:

    - In una casa (id pk,address) posso avere più utenti (id)
    - In una casa possono essere svolti più ruoli (nome)
    - Nella stessa casa , il medesimo ruolo non può essere svolto da due utenti diversi (immaginate il ruolo come "madre", "padre"..)
    - Il ruolo di un utente in una casa potrebbe cambiare (da madre a nonna (?)).. è un po una forzatura ma assumiamo sia possibile. (cioè di fatto dovrei introdurre dei nuovi attributi, tipo da quando a quando ho svolto un ruolo).

    I ruoli sono predefiniti e li ficco tutti in una tabella. Devo inoltre poter inserire utenti e spazi e questi dati devono poter "vivere" singolarmente. (Quindi tabella utenti con un solo campo identificativo e case con id + spazio, e non altri attributi).

    Avevo creato una relazione tripla tra ruolo, casa e utente (più una relazione tra casa e ruolo). Tutto molto semplice e bello, se non fosse che non mi consente di avere che una persona possa aver svolto più ruoli nella stessa casa. Credo che in questi casi si utilizzi la reificazione. Ma come di preciso?

    Grazie dell'aiuto

    Cioè di fatto come faccio a dire che devo avere una relazione utente|casa|ruolo, che un utente non può fare due ruoli diversi nello stesso istante nella stessa casa ma che può cambiare in futuro?
    Ultima modifica di Javino89; 05-10-2016 a 10:28

  2. #2
    Se ho capito bene,

    Un UTENTE puó avere un solo RUOLO e tale ruolo puó cambiare in futuro.

    Detto cosi mi verrebbe da pensare di avere una Entitá UTENTE con attributo RUOLO.

    Cambia il ruolo? Fai un update su tale tabella aggiornando il RUOLO
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  3. #3
    Non posso mettere ruolo dentro utente perché all'inizio non ce l'ha. Deve poter esistere senza ruolo. La questione è come dici te, aggiungendo il fatto che magari vorrei sapere da quando a quando l'utente ha svolto un certo ruolo. Mi viene in mente una reificazione della tripla con l'aggiunta di attributi temporali.

  4. #4
    Quote Originariamente inviata da Javino89 Visualizza il messaggio
    Non posso mettere ruolo dentro utente perché all'inizio non ce l'ha. Deve poter esistere senza ruolo. La questione è come dici te, aggiungendo il fatto che magari vorrei sapere da quando a quando l'utente ha svolto un certo ruolo. Mi viene in mente una reificazione della tripla con l'aggiunta di attributi temporali.
    allora ti basta avere una relazione N:M
    Un UTENTE ha piú RUOLI
    Un RUOLO puó appartenere a piú UTENTI

    quindi 3 tabelle:
    UTENTE - relazione - RUOLO

    nella "relazione" metti campi (idUtente , idRuolo, dal, al) e il gioco é fatto
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  5. #5
    E' già qualcosa, ma quando specifico il ruolo di un utente devo specificarne anche la casa.

  6. #6
    Quote Originariamente inviata da Javino89 Visualizza il messaggio
    E' già qualcosa, ma quando specifico il ruolo di un utente devo specificarne anche la casa.
    Se "la casa" è ad esempio una semplice stringa , puoi aggiungere un ulteriore campo nella relazione di nome: casa
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

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.