Sto per estendere un sistema che contiene due sistemi separati. O domini, se vediamo il sistema come un livello di dominio.
Oggi
Un dominio è usato internamente. L'altro è pubblico, il che significa che è più esposto a qualsiasi cosa possa accadere "là fuori". Servizi di qualche tipo (alcune opzioni si applicano) eseguono operazioni tra i due sistemi separati. Il sistema pubblico e quello interno hanno separato le memorie di database e non sono correlate tra loro. Chiamiamo il client dei domini e memorizziamo.
Domani
Sono in una nuova applicazione che avrà molte più informazioni specifiche dell'utente nel dominio del cliente. Il design può essere paragonabile a un "database privato" che ha un link all'account facebook come chiave. Questo è paragonabile a un database che conteneva azioni dell'utente, ma non aveva dati specifici dell'utente (come indirizzo, data di nascita, email e così via), solo una chiave per il server di Facebook. Dall'altro lato, il database STORE (rispetto a Facebook-server in questo caso) non sa nulla delle azioni dell'utente.
Obiettivo
Circa l'85-90% delle query sarà all'interno del proprio dominio (client se client, store se store). Tuttavia, ci sono alcune situazioni in cui il cliente ha bisogno di ottenere dati dal database STORE e lo STORE deve creare / gestire gli utenti nel database CLIENT.
Domande fuori dalla mia testa
- È un buon modo per andare?
- pro / contro? Orfani? Prestazioni del database? Codifica .NET problematica?
- I principi della scelta per i confini dei dati?
.. e altre cose che potresti conoscere o pensare
Un esempio di struttura
.. dbStore.Users
- userid (PK)
- nome
- dateOfBirth
- emailAddress - > Portafoglio (un'altra tabella)
.. dbStore.Wallet
- walletid (PK)
- userid
- createddate - > BankAccount (un'altra tabella, non digitata)
.. dbClient.users
- storeUserId (unique, non-inc) < - corrisponde a dbStore.User, no restraint
- ACCESSLEVEL
- lastLoggedIn
- serviceXxEnabled
- udpAccessKey
.. dbClient.action
- actionid (PK)
- isSomething
- someDate
- anythingElse
.. dbClient.installation
- installationid (PK)
- userid
Non raccogliamo informazioni sui conti bancari, ma solo per dare un'immagine della struttura dei dati e della sua importanza per mantenerla in sistemi separati. Spero che questo Q sia abbastanza comprensibile.