Devo aggiungere funzionalità a un'applicazione esistente e ho riscontrato una situazione di dati che non so come modellare. Mi sto limitando alla creazione di nuove tabelle e codici. Se devo modificare la struttura esistente, penso che il mio cliente possa rifiutare la proposta ... anche se è l'unico modo per farlo correttamente è quello che dovrò fare.Come modellare una relazione mutuamente esclusiva in SQL Server
Ho una tabella di articoli che può essere collegata a un numero qualsiasi di tabelle e queste tabelle potrebbero aumentare nel tempo. L'articolo può essere collegato solo a un altro tavolo, ma il record nell'altra tabella potrebbe avere molti elementi collegati ad esso.
Esempi di tabelle/entità collegate a sono Person
, Vehicle
, Building
, Office
. Queste sono tutte tabelle separate.
Esempio di articoli sono Pen
, Stapler
, Cushion
, Tyre
, A4 Paper
, Plastic Bag
, Poster
, Decoration"
Per esempio un Poster
possono essere assegnati ad un Person
o Office
o Building
. In futuro, se aggiungono una tabella Conference Room
, potrebbe essere aggiunta anche a quella.
I miei pensieri sono intital:
Item
{
ID,
Name
}
LinkedItem
{
ItemID,
LinkedToTableName,
LinkedToID
}
Il campo LinkedToTableName
poi mi permetterà di identificare la tabella corretta per collegare nel mio codice.
Non sono eccessivamente soddisfatto di questa soluzione, ma non riesco a pensare a nient'altro. Per favore aiuto! :)
Grazie!
Sarebbe utile se si explaned un po 'di più su che tipo di dati che si stanno memorizzando, e perché; ad esempio, gli articoli post del blog, persone o articoli in un supermercato, ecc.? Cosa rappresentano le tabelle di destinazione? Penso che la tua astrazione sia rotta, ma è quasi impossibile dire perché, o suggerire un approccio diverso senza conoscere il problema che stai cercando di risolvere con esso. –
Grazie Rowland. Ho provato ad aggiungere alla mia domanda. Vedi Modificato D. Verrà modificato nuovamente se le informazioni non sono ancora sufficienti :) – littlechris