Siamo stati tutti lì - prendi in considerazione il seguente esempio: in primo luogo, il cliente dice "ogni utente deve avere una sola immagine del profilo", quindi aggiungiamo un campo alla tabella degli utenti - sei mesi dopo , i requisiti cambiano e un utente deve effettivamente avere n immagini del profilo.Tabella di database tridimensionale
Ora, questo sembra possibile solo se aggiungi una nuova tabella come user_pictures per gestire la nuova cardinalità 1: n invece di 1: 1. Spesso questo può diventare molto complicato. Ogni volta che mi imbatto in questo problema, mi chiedo perché non usiamo tutte e tre le dimensioni in cui possiamo pensare. Una tabella bidimensionale è limitata in modo un po 'incompleto, e se si riferisse al nostro problema con l'immagine del profilo di nuovo, il campo immagine nella tabella utenti aveva una profondità e tale profondità rendeva il campo una matrice che rappresentava perfettamente entrambe le cardinalità 1: 1 e 1: n allo stesso tempo.
I campi di tabella diventano semplicemente array e supportano automaticamente entrambe le cardinalità: non sarebbe qualcosa? Almeno lo userei. C'è già qualcosa di simile là fuori?
Sono coperte tutte le possibili relazioni tra "cose" in un database (one-to-one, one-to-many, many-to-many). Quale sarebbe un caso d'uso per un tavolo "tridimensionale" - qualunque cosa significhi? – NullUserException
Un caso d'uso di esempio è quello sopra con le immagini del profilo: dovresti aggiungere una nuova tabella, ma questo è chiaramente ingombrante. I rapporti di modello dovrebbero essere cambiati, le query aggiornate di conseguenza, ecc., Comportando molto dolore e lavoro. Penso che siamo in grado di fare meglio di così. Non sarebbe un campo bidimensionale, rendendo il tavolo tridimensionale, risolvere quello? – weltschmerz
I database relazionali sono supportati da una base molto solida - [algebra relazionale] (http://en.wikipedia.org/wiki/Relational_algebra). Assicura che siano entrambi veloci e corretti. Questo è uno dei motivi per cui sono ancora in circolazione quando altri tipi di database vennero e se ne andarono nel corso degli anni. Non aggiustare ciò che non è rotto. – NullUserException