Abbiamo una tabella parametri generica i cui attributi importanti sono:
id number auto increment not null
domain varchar (200) not null
classification varchar (200) not null
param_name varchar (200) not null
value CLOB/text
created_by, created_date, updated etc
Qui l'id è univoco per la tabella più a livello funzionale c'è un indice univoco su dominio, classificazione, nome_programma
Il valore è testo di qualsiasi lunghezza in UTF-8. Vogliamo aggiungere BLOB, supporto dati binari. Le scelte sono:
- aggiungi una nuova colonna: blob_value BLOB O
-
aggiungi un campo 'tipo' di varchar2 in questa tabella che può essere nullo o 'B', null di default. Il mezzo nullo o vuoto non è - testo Se B significa suo un blob. In quel caso il valore manterrà un id di una riga della tabella blob. La tabella blob avrà il seguente aspetto:
numero auto incremento automatico dati BLOB
- Lascia la tabella esistente da sola e in una nuova tabella che fa riferimento a questa: parameter_id numero chiave primaria, blob di dati, con vincolo FOREIGN KEY (parameter_id) REFERENCES Parametro (id) (suggerimento FrankieTheKneeMan grazie)
Il vantaggio del primo è che un parametro può avere sia un testo che un blob o entrambi.
Il vantaggio del secondo - non è sicuro - > non è necessario mantenere colonne vuote? La tabella corrente ha 30.000 file e ci aspettiamo che cresca fino a 70.000, di cui il 10% necessiterà di dati blob.
Domanda: quale di questi sceglieresti e perché o hai un supplente?