Come rappresentare un modello con una relazione 1: N?

0

Ho un compito per associare 1: N documenti a un record nella mia tabella hardware. Questo file potrebbe essere una garanzia, o qualsiasi altra cosa. In SQLServer ho impostato un gruppo FileStream e creato una tabella solo per il file e le altre colonne richieste (id, id interno (un guid) e una colonna varbinary (MAX)). Ho un'altra tabella che memorizzerà le informazioni del file (nome, dimensione, tipo mime) e l'id del file dalla tabella dei file. Io chiamo questa tabella Document_Info. È un buon nome? Descrivendo la relazione tra la mia tabella hardware e la tabella Document_Info con cui sto lottando.

Sto considerando di archiviare l'id dell'hardware nella tabella Document_Info e creare un'altra colonna che rappresenti ciò a cui è correlato questo documento. Ciò mi aiuterebbe ad integrare altre tabelle future che devono anche correlare 1: 1 o 1: N se hanno bisogno di memorizzare anche i file. Ho appena specificato un nuovo tipo e sto bene. l'id può essere uguale a quando il loro tipo di id è diverso.

Il modo in cui tutto questo si riferisce al mio modello hardware è, in linea di principio, non perché i campi di un modello rappresentano le colonne di una tabella. Tuttavia, devo archiviare i documenti di questo da qualche parte dell'hardware, ma la domanda è dove?

    
posta Luminous 06.05.2015 - 20:29
fonte

1 risposta

1

Questo è il tuo modello di base, mi dispiace, non sono sicuro di aver compreso il tuo testo:

Hardware_table (Id, GUID, Descrizione, ecc.) questo contiene il tuo oggetto primario uno di ciascuno Document_info_table (Id, HId, Name, size, mime type) contiene documenti relativi all'oggetto primario

Usando SQL dovresti collegare Hardware_Table a Document_Info_table inserendo il PK dal primo in ogni record correlato nell'ultima tabella. I nomi delle tabelle non contano davvero, dal momento che questi sono protetti dagli utenti finali dalla tua interfaccia di programmazione.

Non memorizzerei i documenti effettivi nelle tabelle SQL a meno che tu non abbia davvero bisogno di farlo, non mi piace leggere e scrivere i dati blob in SQL. È necessario memorizzare nel file system e archiviare i puntatori nei database SQL, utilizzare meglio l'archiviazione DB e l'efficienza di lettura / scrittura.

    
risposta data 15.05.2015 - 22:54
fonte

Leggi altre domande sui tag