Domanda

Sfondo: oggi, un problema sorto durante l'utilizzo di SQL Server Reporting Services. Sembra che SSRS parametri discesa nel visualizzatore di report non consentono di indicare l'opzione (null) in modo che si può vedere un report in cui tale parametro è nullo. Fondamentalmente, tabella A è una tabella nullably riferimento tabella B; dal momento che il rapporto utilizza tabella B per popolare la discesa, non ci sono nulli per mostrare come opzione, e quindi non è possibile selezionare tutte le la A che hanno un valore nullo B.

La mia vera domanda proviene dalla potenziale reazione istintiva al problema di cui sopra da un tipo di gestione a cui sto rispondendo. Quando ho spiegato che cosa stava succedendo, ha emesso un nuovo mandato che tutte le chiavi esterne devono essere non nullo e che ogni entità dovrebbe avere un record "default" inserita, un nuovo standard apparentemente per risolvere questo problema nel strumento di reporting. In sostanza, se si dispone di una tabella gatto, poi Cat.Owner non dovrebbe mai essere nullo, ma dovrebbe invece fare riferimento a un record di default nella tabella persona: quella "default".

Anche se questo può aiutare il problema SSRS, può danneggiare lo sviluppo / manutenzione di servizi e applicazioni che utilizzano il database, da quando erano ora non solo devono tenere conto di valori nulli (che sono stati autorizzati a questo punto), ma hanno anche cercare di e utilizzare correttamente il record di "default". Ho pensato di provare a parlare con lei fuori il mandato, ma mi piacerebbe raccogliere alcune informazioni dal esperto prima di decidere di farlo.

Qualcuno può pesare su ciò che questo può aiutare o danneggiare?

Chiunque ha avuto questo come standard base di dati? Qualsiasi problemi, lo sviluppo o in altro modo, dovrei essere mindfull di?

È stato utile?

Soluzione

campi NULL significa alcun valore .

Quindi è logico e corretto di riempire relazione mancanti con i NULL.

Ho visto, a volte, in alcuni casi particolari, l'uso di un record di default , come descritto nella domanda. Ma quello era un "caso speciale" e usata "a volte".

IMHO costringendo questa politica come standard DB sviluppo è solo stupido, non corretta e potenzialmente pericoloso. Io non l'avventura in tutte le possibili complicazioni derivanti da un tale progetto: immagino che già immaginare che cosa vorrebbe dire

.

Altri suggerimenti

Mentre, se il gatto è un OWNED_CAT, allora deve avere una persona come il proprietario, se è abbandonato, non dovrebbe essere in tale tabella.

Tuttavia se il CAT è un ANY_CAT (con / senza proprietario), allora abbandonato CAT non deve essere associato a qualsiasi persona.

Per me, la creazione di un manichino o di record di default nella tabella persona per il bene della segnalazione ha senso di business (per il vostro manager), ma non mi sento 'giusto' su questo.

non può offrire molto, solo i miei 2 centesimi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top