2012-04-11 10 views
0

ich Datensatz eine Kosten-Tabelle sieht wie folgt auf Jahre basierenWie MySQL-Tabelle strukturieren zusätzliche Zeilen zu vermeiden

Expenses(id,name) 
Expenses_data(id,amount,expense_id) 

Kosten der Ausgaben am Aufrechterhaltung, 10 Jahre können sagen, und ich es als Monate speichere, so es würde 120 Monate

Wenn ich 10 Ausgaben haben würde dann würde expenses_data 120 hat * 10 = 1200 Zeilen

ich mag es 120 Zeilen und Daten von 1200 Zeilen wie diese wäre zu retten, wie ich in Excel eingeben

id month marketing electricity bank charges 
1 month-1 100   200   300 
2 month-2 95.5   5000   100 

Bitte schlagen Sie vor, wenn es möglich ist und wie?

+1

Durchsuchen Sie diese Website nach 'mysql pivot table' Fragen. – pilcrow

Antwort

1

Ich denke, Sie wahrscheinlich, was Sie an der Datenbankstruktur, die Sie bereits haben, bleiben, aber verwenden Sie eine Abfrage, um die Daten in dem gewünschten Format anzuzeigen.

Wenn Sie an die Anzahl der Datenpunkte denken, die Sie speichern, gibt es keinen großen Unterschied zwischen Ihrem gesuchten Schema und dem, was Sie bereits haben - es sind immer noch 1200 Datenpunkte von Ausgaben. Jedes Mal, wenn Sie eine Ausgabenspalte hinzufügen, müssen Sie Ihr Schema aktualisieren.

Bei einer Abfrage für Ihren Excel-Export würde die Datenbank das Konzept der Aufwandskategorien verstehen, und die Aktualisierung der Exportabfrage auf die neue Kategorie wäre wesentlich einfacher als die Änderung des Schemas. Die notwendigen JOINs könnten sogar programmatisch berechnet werden, indem eine erste Abfrage von "Welche Ausgabenkategorien sind bekannt?"

Verwandte Themen