Dati statici e dinamici: dovrei usare diversi database?

0

Dire che sto costruendo un sito web che utilizza due diversi tipi di dati:

  • Statico: informazioni che difficilmente cambieranno, come premi cinematografici o nomi di paesi del mondo (desidero un accesso rapido, quindi nessuna API esterna)
  • Dinamico: informazioni inserite dagli utenti

Non ho ancora scritto una singola riga di codice. È probabile che il mio db statico sia piuttosto grande ma non cambierà i tempi supplementari. Per quanto riguarda il db dinamico non ho ancora idea ma potrei aver bisogno di scalabilità.

Dovrei utilizzare database diversi a lungo termine? È pratica comune farlo?

    
posta vanna 24.07.2014 - 14:28
fonte

2 risposte

3

Non vedo alcun vantaggio nel separare i database e molti aspetti negativi.

  • Sei costretto a indovinare in anticipo quali dati non cambieranno mai e quali potrebbero cambiare. Tali ipotesi sono praticamente sempre sbagliate in qualche modo.
  • Ulteriori costi di programmazione e configurazione per gestire due connessioni al database anziché uno.
  • I JOIN tra i dati provenienti da fonti diverse sono probabilmente molto meno efficienti di quanto non sarebbero nel database.
  • Due diversi spazi dei nomi per le tabelle significano che corri il pericolo di collisioni di nomi senza che il sistema ti avvisi, promuovendo sottili fraintendimenti da parte degli sviluppatori (anche te stesso).
risposta data 24.07.2014 - 14:37
fonte
1

Per quanto ne so, non è una pratica comune.

In base a quanto le tue informazioni statiche sono realmente statiche, puoi prendere in considerazione altre opzioni per decidere dove archiviare i dati, utilizzando invece un database.

Ad esempio, se i dati statici non cambiano mai, puoi prendere in considerazione l'uso di una classe Constants:

public static class Constants{

     public const int MyConstantValue = 10;

}

Il vantaggio di questa tecnica è di essere in grado di usare l'intellinse perché è memorizzato in un oggetto.

var foo = Constants.MyConstantValue;

Un'altra opzione è usare un file semplice. Ad esempio, in genere con le applicazioni .Net Framework è possibile creare un file App.Config in cui è possibile memorizzare i valori con una chiave:

<configuration>
 <appSettings>
    <add key="Setting1" value="Value1" />
    <add key="Setting2" value="Value2" />
 </appSettings>
</configuration>

Uso ad esempio App.Config per memorizzare le stringhe di connessione alle origini dati esterne (come la stringa di connessione del database).

Generalmente, è una buona idea conservare un dato statico nel database quando pensi che sia per la maggior parte del tempo un'informazione costante, ma vuoi poterlo modificare se ne hai bisogno.

    
risposta data 24.07.2014 - 14:40
fonte