RDBMS stesso tipo di dati opzionali per più tabelle

0

Ho un database incorporato (SQLite), memorizza informazioni su eventi e pagine viste, il suo scopo è di tracciare il percorso dell'utente all'interno della mia applicazione. Devo fornire supporto per proprietà personalizzate opzionali sui miei eventi e visualizzazioni di pagina.

Nel codice questo non è un problema, tuttavia sono diviso tra due soluzioni per la memorizzazione di tali informazioni.

Quindi ho le tabelle Events e PageViews, la mia prima opzione per mantenere le proprietà personalizzate opzionali è avere una tabella EventsCustomProperties che abbia solo una colonna nome e valore e un riferimento (chiave esterna) all'evento. In questa soluzione avrei anche un PageViewCustomProperties con la stessa struttura.

Il problema che ho con questo è avere due tabelle identiche a quelle delle altre relazioni.

Nella mia altra soluzione avrei una tabella CustomProperties e, oltre al nome, valore e chiave di relazione, avrebbe anche una colonna type, che dovrei usare manualmente nel codice per mappare l'id della relazione a un evento o una visualizzazione di pagina. In questa soluzione l'uso effettivo delle chiavi esterne è ridondante.

Il mio dilemma è che nella prima soluzione sto rispettando una regola di normalizzazione di ripetizione di gruppi di dati, compro nella seconda soluzione sto infrangendo un'altra regola anche se non riesco a farmi ricordare il nome della regola.

Quindi sembra che infrangerò le regole qualunque cosa faccia. Qualcuno può suggerire un modo migliore o una preferenza per la prima o la seconda soluzione.

    
posta Daniel 13.07.2012 - 21:21
fonte

1 risposta

2

Ecco un modo per farlo. È vicino alla tua prima soluzione. Questa è una variazione su un normale schema a stella. Gli schemi a stella talvolta scambiano la normalizzazione per l'efficienza. La soluzione proposta di seguito si basa sulla mia comprensione del problema, ma questo è incompleto, ad esempio, per verificare la correttezza di questo, è necessario elencare le query più comuni che ci si aspetterebbe di emettere e vedere se questo è valido o meno . Ho solo elencato i PK.

    
risposta data 13.07.2012 - 23:30
fonte

Leggi altre domande sui tag