Frage

Wenn Rechnungen können für ungültig erklärt werden, sollten sie als Zitate verwendet werden?

ich eine Invoices Tabellen haben, die aus dem Inventar in Verbindung mit einem Job oder Order erstellt wird. Ich könnte eine Quotes Tabelle als halb-Haus zwischen Inventar und Rechnungen, aber es fühlt sich an wie ich nur doppelte Datenstrukturen und Logik wäre ein „Ist das ein Angebot?“ Zu handhaben Bit.

Aus betriebswirtschaftlicher Sicht, Zitate sind verschieden von Rechnungen: ein Zitat vor einem Unternehmen gesendet wird, und eine Rechnung gesendet wird, sobald es abgeschlossen ist und die Zahlung fällig ist, aber, wie dies zu vertreten in meinem Repository und Modell.

  • Was ist eine elegante Art und Weise zu speichern und zu verwalten Zitate & Rechnungen in einer Datenbank?

Edit:. angegebene Job === Order für diese bestimmte Instanz

War es hilfreich?

Lösung

Es gibt 3 Ansätze:

  1. speichern Rechnungen und Zitate in separaten Tabellen.

    Dies ist ein gutes Design, wenn Rechnungen und Zitate haben einige Felder in zweifacher Ausfertigung (ansonsten verwenden Sie die Option # 3 mit 3 Tabellen), und wenn es eine 1-viele oder viele-viele Beziehungen zwischen ihnen (für 1-1, Verwendung Option 2).

    Dies ist auch eine gute Wahl, wenn es gemeinsam, dass „shared“ Informationen zwischen den beiden kann tatsächlich mutieren, wenn das Angebot die Rechnung wird (obwohl einige dieser Mutationen sollten ordnungsgemäß mit getrennten Feldern / Tabellen, wie der angewandten Rabatte behandelt werden, etc ...).

    Eine leichte Variation dieser Option ist offensichtlich getan werden muß, wenn mehrere Angebote zu einer einzigen (oder mehr) Rechnungen gedreht werden. Dies fügt eine dritte Tabelle, die eine Zuordnung zwischen einer Reihe von Zitaten ist und eine Rechnung (oder Satz von Rechnungen, wenn es so kompliziert wird) für sie.

  2. speichern sie in der gleichen Tabelle, mit extra-Flag „Rechnung oder Zitat“ und alle zusätzlichen Felder aus beiden gespeichert. Dies kann entweder mit Rechnungen und Anführungszeichen in unterschiedlichen Zeilen durchgeführt werden, oder mit ihnen Reihen teilen (mit Flag mit „Both“ Wert auch).

    Die letztere (gleiche Zeile kann sowohl Rechnung und Angebot sein) ist eine gute Wahl , wenn sie 1 bis 1 abgebildet werden, und es gibt nur wenige Felder, die die beiden zu unterscheiden.

    Die ehemaligen (getrennten Reihen für Rechnungen und Anführungszeichen) sind keine variieren gutes Design im Allgemeinen und besser mit der # 3 oder # 1 Optionen erfolgen.

  3. Habe 3 Tabellen, eine für gemeinsame Felder zwischen den beiden, und zwei für die Rechnungs nur und Zitate nur.

    Dies ist eine gute Wahl, wenn Rechnungen und Zitate 1-1 abgebildet sind, oder wenn sie 1-viele, aber jeder der viele Rechnungen hat genau die gleichen Feldwert für welche auch immer Felder gemeinsam sind. Andernfalls 1 # verwenden.

    Eine leichte Variation dieser Option kann getan werden, wenn mehrere Angebote in eine einzige Rechnung gedreht werden. Dies fügt eine vierte Tabelle, die eine Zuordnung zwischen einer Reihe von Zitaten und einem incoice (oder Satz von Rechnungen, wenn es so kompliziert wird) für sie. Auch hier ist die Annahme, dass es hier zwischen all den Angeboten und Rechnungen verknüpft / kombiniert zusammen, sonst gehen Sie einfach mit # 1.

  4. ein gutes Stück gemeinsamen Info

Andere Tipps

Zitate sind analog zu Aufträgen. Ich habe mehrere Distribution / Retail-Systeme mit einer Auftrag Tabelle ersichtlich, die einen boolean-Flag so etwas wie IsQuote genannt hat. Dies kann einfach scheinen, als es macht es trivial ein Angebot in einen Auftrag zu drehen. Ich mochte es nie, weil Aufträge, die von Zitaten kommen nicht immer genau so, wie zitiert. Als Ergebnis mag Systeme diejenigen verlieren Informationen, die von Nutzen (das heißt ein Bericht, der Anführungszeichen Aufträge vergleicht) sein kann. Deshalb ziehe ich es Systeme, bei denen die Angebots- und Auftragstabellen in etwa gleich sind, aber getrennt. In Verteilungssystemen führt dies oft zu Tabellen wie Orderheader, Orderline (bezieht sich auf Artikel / Bestandstabelle), QuoteHeader und Quoteline. Vielleicht haben Sie auch eine Tabelle eine Beziehung zu modellieren, wo ein Zitat, um mehrere Aufträge zuordnen kann.

Rechnungen in der Regel von den Aufträgen führen. Manchmal mehr als eine Bestellung wird auf einer einzigen Rechnung abgerechnet. Zum Beispiel gibt es Fälle, in denen ich Unternehmen Rechnung monatlich an ihre guten Kunden gesehen haben. Ich habe auch auf mehreren Rechnungen gesehen, die andere Art und Weise arbeiten, wo ein Großauftrag mit mehreren Sendungen in Rechnung gestellt wird (ein für jede Sendung).

Schließlich haben Zahlungen in der Regel eine viele zu viele Beziehung mit der Rechnung. Manchmal umfasst eine Zahlung mehrere Rechnungen. Manchmal eine Rechnung bekommt in ein paar Zahlungen bezahlt.

[Single Produkt und Dienstleistungen ignoriert, der Einfachheit halber.]

Verkaufsquote ist ein Vorschlag einen guten für einen Preis in einem Zeitfenster (Datumsbereich) an einem anderen Partei zu verkaufen. Diese Anlage muss noch nicht existieren. Sie könnten auf der Spezifikation des Vermögens zitieren (das gute).

Ein Zitat irgendwann ablaufen soll, und kann oder auch nicht vor akzeptiert werden, um Ablauf.

Kundenauftrag ist ein Engagement einen guten für einen Preis zu einem Zeitpunkt an einem anderen Partei zu verkaufen. Es kann von einem akzeptierten Angebote erstellt werden.

Ein Auftrag oder Quote Zahlungsbedingungen haben, wie „Sie können uns zahlen 30 Tage nach Lieferung“.

Ein Auftrag kann eine gute sein, die noch nicht existiert (Sie verkaufen das gut, nicht der Vermögenswert). Vielleicht sind Sie bauen es. Vielleicht sind Sie es von jemand anderem Gonna zu kaufen.

Ein Kundenauftrag führt zu der Beschaffung (nehmen Sie aus dem Inventar, make or buy) einen physischen Guts und dann der Sendung des physischen Guts, die gegebenen kann nicht in einer Lieferung. Manchmal ist der Kunde „rufen“ auf den Anbieter, um Pickup den Vermögenswert.

Im Allgemeinen ein Vermögenswert hat übertragen sein, bevor Sie den Auftrag Linie als zählen Einnahmen (dies hängt von Ihren Versandbedingungen, bei Versand oder Lieferung sein könnte oder in-between).

Ein Kundenauftrag sein kann gelöscht (zum Beispiel einige Branchen haben Karenzzeiten).

Verkaufsrechnung ist eine Zahlungsaufforderung für bestellte Produkte. Es kann vor der Auslieferung geschehen, bei Lieferung oder nach der Entbindung, oder eigentlich gar nicht (wie wenn in der Zeile bei McDonalds) passieren. Ein Auftrag kann eine oder mehr Rechnungen hat, und eine Rechnung für mehrere Aufträge sein.

Eine Rechnung hoffentlich führt zu einem oder mehreren Zahlungen , die sind angewendet zu einem Konto . Eine Zahlung führt oft zu einem oder mehreren Zahlungseingänge . Eine Zahlung ist nicht unbedingt die gleiche wie Einnahmen, wenn die Periodenrechnung mit.

würde ich sein, so flexibel wie möglich empfehlen. Verwenden Sie die folgenden Tabellen

Auftragstabelle, Rechnung Tabelle, Quote Tabelle

In Ihrer Rechnung Tabelle und Tabelle einholen, speichern Sie den Job Id, geben Sie ihm einen Index und einen Fremdschlüssel erstellen. Lassen Sie den Clustered-Index für die Zitat-ID und die Rechnung ID.

Auf dem letzten System, das ich auf der einzige Unterschied zwischen Angeboten und Rechnungen gearbeitet (in Bezug auf die db) war ein Flag auf dem Tisch, ob das Zitat angedeutet hatte, vom Kunden akzeptiert worden ist (wobei an diesem Punkt eine andere Erklärung wurde erzeugt mit alle die gleichen Informationen, außer dass es eine Rechnung anstelle eines Zitats war)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top