Quando eseguo la progettazione di una tabella di database, mi chiedo spesso se dovrei provare a rendere la tabella il più semplice possibile, o se dovrei rendere l'oggetto il più chiaro possibile.
Il requisito è quello di archiviare tutto il mese delle vendite dell'anno e del profitto lordo.
Disegno dall'oggetto. L'oggetto ha campi anno, mese, vendite e profitto lordo. Per questa situazione quando ho bisogno di salvare i dati nel database, salverà 12 righe (una riga un mese). Questo oggetto ha una relazione con un altro oggetto (cliente). quindi quando lo salvi salverà n (cliente) * 12 righe per una volta. Farà una grande operazione di inserimento. Temo che tih renderà il db lento.
Un altro design è usare solo un oggetto. Un oggetto per salvare l'intero anno - non c'è bisogno di dividere l'oggetto in mesi. Ma nell'oggetto ci saranno i campi di 12 * 2 come (month1_sales_ton, month1_gross_profit, month2_sales_ton, month2_gross_profit .......), questa situazione fa risparmiare meno righe, basandosi su n (cliente) per volta.
Ma poiché la seconda situazione non ha mese, non posso scrivere il metodo comune quando voglio cercare il profitto lordo di un anno di un anno che accetta i parametri di anno, mese. Forse dovrei scrivere il metodo per passare solo l'anno e ottenere un oggetto tutto l'anno? non lo so.
Quindi quale principio dovrei seguire quando disegno il tavolo?