summaryrefslogtreecommitdiff
path: root/doc/niels-diplom/Dateistruktur/kapv.php
blob: 6c4c0b1b569b6d38891d46bdf29546b4195ddd27 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?
	include("header.php");
?>
 
 <a name="start"></a>
 
 <tr>
 <td class="titel">Situationsbeschreibung KAPV (Kunden-Auftrag-Produkt-Verwaltung)</td>
  </tr>
  <tr>
    <td valign="top" class="text"><table>
      <tr>
        <td valign="center"  class="text"><br>
Ein Unternehmen handelt mit verschiedenen Produkten. Die Verwaltung der Kunden, der Aufträge
und der Produkte soll als Client-Server-Datenbank-Applikation realisiert werden. Von den Kunden
werden Stammdaten wie Kundennummer, Name, Vorname, Geburtsdatum, Geschlecht,
Adressdaten wie PLZ, Ort, Straße und Hausnummer, Staat gehalten und müssen immer aktuell sein.
Dabei kann ein Kunde mehrere Adressen haben.<br><br>Zu jedem Kunden wird ein firmenspezifisches Profil
unterhalten, das aus mehreren Angaben besteht: bisheriges Auftragsvolumen (aufsummiert),
Zahlungsbilanz mit den Werten ‘+’ oder ‘-‘ und Zahlungsverhalten, Vorlieben, dokumentiert in
Produktkategorien, Frequenz der Bestellungen. Das Zahlungsverhalten hat die Werte: -1, falls noch
Beträge ausstehen, 0, falls mehr als 10 Mahnungen pro Jahr ausgestellt wurden, 1 sonst.<br>
Produktkategorien sind: Textilien, Handwerksbedarf, Sport (kann erweitert werden). Die Frequenz
der Bestellungen ist die Aufstellung Anzahl_Aufträge pro Jahr. Kunden müssen gegebenenfalls
angeschrieben werden. Bestellungen von Kunden werden nur schriftlich akzeptiert.<br><br>
Zu jeder Kundenbestellung wird ein Auftrag angelegt, bestehend aus einer Auftragsnummer, der
Kundennummer, Auftragsdatum, Auftragsbetrag und Auftragsstatus. Der Auftragsstatus hat die
Werte ‘in Arbeit’, ‘ausgeliefert’, ‘bezahlt’. Zu jedem Auftrag gehört eine Liste (Positionen) der
bestellten Produkte. <br>Diese Liste beinhaltet die Informationen Auftragsnummer, Produktnummer,
bestellte Stückzahl, Preis pro Stück, Betrag . Der Positionenbetrag berechnet sich aus der Stückzahl
mal Preis; der Auftragsbetrag berechnet sich aus der Summe aller Positionenbeträge zu dieser
Auftragsnummer. Zu jedem Kunden wird ein sogenanntes Kundenkonto gehalten. Darin sind alle
Auftragsbeträge mit Bestelldatum und alle eingegangenen Zahlungen zu diesen Aufträgen mit Datum
eingetragen. <br><br>Weiterhin sind pro Auftrag die Anzahl von Mahnungen festgehalten. Mahnungenwerden
21 Tage nach Rechnungsdatum ausgestellt. Die Liste der bestellten Produkte wird mit dem
Produktlager verglichen: ist das Produkt in ausreichender Stückzahl vorhanden, wird diese Position
in die Auftrags-Bestell-Liste (Positionen) aufgenommen. Sind nicht genügend viele Produkte
vorhanden, wird dies auf der Rechnung vermerkt. Ist die Bestelliste abgearbeitet und die
Positionsliste komplett, wird das Lager angewiesen, die Produkte zu verpacken. Es wird eine
Rechnung ausgestellt und zusammen mit dem Produktpaket verschickt. Eine Rechnung bezieht sich
immer auf einen Auftrag und einen Kunden und besteht aus Rechnungsdatum, Rechnungsbetrag und
Rechnungsbemerkung. Der Status des Auftrags wird geändert in ‘ausgeliefert’. Nach Eingang der
Zahlung ändert sich der Status in ‘bezahlt’.<br><br>
Das Produktlager besteht aus den folgenden Informationen: Produktnummer, Bezeichnung,
Produktionsdatum, Material, Größe, Stückzahl_auf_Lager, Preis. Nach jeder Auftragsauslieferung
muß die Lager-Stückzahl entsprechend verringert werden. Die Liste der Produkte wird immer
wieder aktualisiert. Später soll diese KAPV erweitert werden um ein Lieferantenmodul, das die
Verwaltung der Produkte mit ihren Lieferanten realisiert.<br><br>In dem untenstehenden PDFDokument ist die Datenbank noch einmal übersichtlich als Relationenmodell dargestellt. <b>Hier noch einmal eine Übersicht über die Tabellen die Spaltennamen und die Datentypen:</b></td>
        </tr>
		<tr>
			<td>
		<UL>
      <LI>Tabelle <b>ADRESSEN</b> (<u>ADRESS_ID[number]</u>, POSTLEITZAHL[number], ORT[varchar2], STRASSE[varchar2], HAUSNUMMER[varchar2], STAAT[varchar2])</LI>
      <LI>Tabelle <b>AUFTRAG</b> (<u>AUFTRAGSNUMMER[char 10]</u>, AUFTRAGSSTATUS[varchar2], AUFTRAGSDATUM[date], KUNDENNUMMER[char 8])</LI>
	  <LI>Tabelle <b>AUFTRAG_HAT_POSTIONEN</b> (PRODUKTNUMMER[char 8], STUECKZAHL[number], AUFTRAGSNUMMER[char 10])</LI>
	  <LI>Tabelle <b>PRODUKTLAGER</b> (<u>PRODUKTNUMMER[number]</u>, STUECKZAHL[number], PREIS[number], BEZEICHNUNG[varchar2], PRODUKTIONSDATUM[date], MATERIAL[varchar2], GROESSE[varchar2])</LI>
      <LI>Tabelle <b>AUFTRAG</b> (<u>AUFTRAGSNUMMER[char 10]</u>, AUFTRAGSSTATUS[varchar2], AUFTRAGSDATUM[date], KUNDENNUMMER[char 8])</LI>
	  <LI>Tabelle <b>KUNDE_HAT_ADRESSE</b> (ADRESS_ID[number], KUNDENNUMMER[char 8]</LI>
	  <LI>Tabelle <b>KUNDE_HAT_VORLIEBEN</b> (KUNDENPROFIL_ID[number], VORLIEBEN_ID[number], ANZAHL[number]</LI>
      <LI>Tabelle <b>KUNDEN</b> (<u>KUNDENNUMMER[char 8]</u>, NAME[varchar2], VORNAME[varchar2], GEBURTSDATUM[date], GESCHLECHT[char 1])</LI>
	  <LI>Tabelle <b>KUNDE_PROFIL</b> (<u>KUNDENPROFIL_ID[number]</u>, KUNDENNUMMER[char 8], AUFTRAGSVOLUMEN[number 10], ZAHLUNGSBILANZ [char 1], ZAHLUNGSVERHALTEN[number]</LI>
	  <LI>Tabelle <b>ZU_VORLIEBEN_GEHOEREN_PRODUKTE</b> (PRODUKTNUMMER[char 8], VORLIEBEN_ID[number]</LI>
      <LI>Tabelle <b>VORLIEBEN</b> (VORLIEBEN_KATEGORIE[varchar2], VORLIEBEN_ID[number])</LI>
	  <LI>Tabelle <b>RECHNUNGSDATEN</b> (<u>RECHNUNGSNUMMER[char]</u>, RECHNUNGSBEMERKUNG[varchar2], AUFTRAGSNUMMER[char 10], ANZAHL_VON_MAHNUNGEN[char 1], RECHNUNGSDATUM[date], EINGEGANGENE_ZAHLUNGEN[number], ZAHLUNGSDATUM[date])</LI>
    </UL></td>
		</tr>
		
		<tr>
			<td>DATENBANKSCHEMA (Klick zum Anzeigen der PDF-Datei):
			</td>
		</tr>
		<tr>
			<td><a href="/dipl/css/KAPV.pdf" target=_blank><img src="/dipl/css/kapv.gif" width=555></a>
			</td>
		</tr>
    </table> 
	
		<p>&nbsp;</p></td>
  </tr>
</table>
            </td>
          </tr>
        </table>
</td> </tr>
      <tr>
        <td width="200" align="right" valign="top" class="randmenu"><p>&nbsp;</td>
        </tr>
    </table>

<? 
include("footer.php");
?>