Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Datenbankentwurf

Begonnen von AstraDyne, Februar 21, 2024, 09:14:05

⏪ vorheriges - nächstes ⏩

MzKlMu

#15
Hallo,
Zitatwelcher Schlüssel in welcher Tabelle Fremdschlüssel, 1:1 oder n:m haben soll oder welche Gruppierung in welcher Tabelle mit drin steht. 
1:1 kannst Du gleich wieder vergessen, Du wirst keine 1:1 Beziehungen brauchen. Nur 1:n, n:m ist auch nichts anderes als zwei 1:n Beziehungen. Und Gruppierungen in Tabellen gibt es auch nicht.

Zitatund die Alten ganz rausgenommen werden und nicht mehr angeboten werden.
Dann dürfen die alten Datensätze aber nicht gelöscht werden. Die kriegen nur ein Kennzeichen (z.B. InAktiv).

Zitatsobald ich dann die Abfrage stellen soll, dass die Patrone oder das Zubehör AUCH für Drucker x, x oder z sein soll und die Datenbank dann UMGEKHRT zu dem anderen Drucker auch NUR diese Patrone zuordnen/anzeigen lassen soll, dann knotet mein Hirn.
Eine solche Zuordnung hat mit dem Angebot zunächst mal nichts zu tun. Du brauchst eine Zuordnungstabelle welches Zubehör zu welchem Drucker gehört. In diese Tabelle kommt eine FS zum Drucker und ein FS zum Zubehör. Das sind zwei 1:n Beziehungen die man als n:m bezeichnet.

Wenn dann ein Angebot angelegt wird, wird der Drucker ausgewählt. Das Kombifeld zur Auswahl des Zubehörs (inkl. Patronen) kann dann über die oben beschriebene Zuordnungstabelle auf den gewählten Drucker beschränkt werden.

Ich sehe da folgende Tabellen

tblDrucker
tblZubehoer(Patronen und Zubehör)
tblZuordnung (FS zu Drucker und FS zu Zubehör>)
tblKunden
tblKommunikation (FS zum Kunden und FS zur KommunikationsArt)
tblKommunikatsarten
tblSachbearbeiter
tblAngebote
tblAngebotPositionen (FS zum Angebot, FS zu Drucker oder Zubehör)
tblPreise (ist noch unklar)
tblGarantie (was steht in dieser Tabelle?)

FS=Fremdschlüssel

Ich habe irgendwo noch ein Beispiel für Bestellungen (woraus man auch Angebote ableiten kann).
Wenn ich das finde, lade ich es hier hoch.

Im Anhang noch das Beispiel. Die Bestellungen wären bei Dir das Angebot.
Gruß
Klaus

AstraDyne

Hallo Klaus,

Woooooow, mein herzlichstes Daaaaankeschön, das ist ja MEGAsuper!!
Damit komme ich jetzt auf jeden Fall weiter, ich fange mal an, zu bauen.

ZitattblAngebotPositionen (FS zum Angebot, FS zu Drucker oder Zubehör)
tblPreise (ist noch unklar)
tblGarantie (was steht in dieser Tabelle?)   


<--warum Drucker ODER Zubehör?
<--warum tblPreis unklar? Wie geht Funktion "InAktiv" in DB, da hab ich noch nie von gehört?
<---ist ähnlich der Patronen und des Zubehörs- zu jedem Drucker verschiedene Garantiemöglichkeiten. Es
    gibt 3, 4 oder 5 Jahre Dauer zubuchbar und es gibt da Vor Ort Service und Nur Ersatzteil-Garantie.
    Alles jeweils mit eigenen Artikelnummern wie bei Patronen und Zubehör.In dem Screenshot des Formulars
    ist das zu sehen mit den Jahren und Artikelnummer und Preisen  ganz unten.
    Muss das dann MIT in die Tabelle Zubehör und Patronen? Deinen Ausführungen nach würde ich das nun
    bejahen.




ZitatIch habe irgendwo noch ein Beispiel für Bestellungen (woraus man auch Angebote ableiten kann).
Wenn ich das finde, lade ich es hier hoch.

Im Anhang noch das Beispiel. Die Bestellungen wären bei Dir das Angebot.


Sehr sehr gerne,ich bin begeistert und erleichtert, weil ich da komplett auf dem Schlauch stehe mit diesen vielen Tabellen.Das erzeugt Hirnknoten.

Jetzt "studiere" ich mal dein Beispiel

Viele Grüße,
Astra

MzKlMu

Hallo,
Zitatwarum Drucker ODER Zubehör?
weil jeweils eines leer bleibt. Jede Position ist ein Datensatz.

1 Drucker (FS zum Drucker (FS zum Zubehör bleibt leer)
1 Patrone Schwarz (FS zum Drucker bleibt leer)
1 Satz Patronen Farbe (FS zum Drucker bleibt leer)

Deine Angebotspositionen ummfassen demnach 3 Positionen (=3 Datensätze).

Gibt es unterschiedliche Garantien für Drucker und Zubehör ?

ZitatWie geht Funktion "InAktiv" in DB, da hab ich noch nie von gehört?
Ich habe doch nicht geschrieben von einer Funktion. "InAktiv" ist sonst nichts als ein Ja/Nein Feld das angehakt wird wenn der Drucker nicht mehr im Angebot ist. Gleiches kann auch für das Zubehör gemacht werden.

Was die Preise betrifft, so gibt es auch eine einfache Version, die bei Dir ausreichen könnte. Bei der Auswahl eines Druckers oder Zubehör wird der aktuelle Preis aus den entsprechenden Tabellen ermittelt und redundant in der Angebotsdetailtabelle gespeichert.
Gruß
Klaus

AstraDyne

Hallo, Klaus,

Zitat
Zitatwarum Drucker ODER Zubehör?
weil jeweils eines leer bleibt. Jede Position ist ein Datensatz.

1 Drucker (FS zum Drucker (FS zum Zubehör bleibt leer)
1 Patrone Schwarz (FS zum Drucker bleibt leer)
1 Satz Patronen Farbe (FS zum Drucker bleibt leer)

Deine Angebotspositionen ummfassen demnach 3 Positionen (=3 Datensätze).

achsooo meintest du das...ok, ja, das ist logisch- ich hatte es falsch aufgefasst a la: Du kannst nur DEN oder DEN Fremdschlüssel setzen, du musst dich entscheiden.....Dann hab ich das jetzt richtig sortiert, Danke  :)


ZitatGibt es unterschiedliche Garantien für Drucker und Zubehör ?
Ja und Nein. Davon hängt nun auch ab, wie ich die Tabellen gestalte vermutlich....also:

Es gibt die Vor-Ort-Service(Garantie) mit es wird nach den Druckern gesehen und dann natürlich auch auf die Zusatzkassetten und Patronen geschaut (also wie Wartung beim Auto nur Vor-Ort bei KD).

Die Patronen sind Verbrauchsmaterial und unterliegen eiiiigentlich nicht der Garantie (also Tinte), aaaaber, wenn da was abbricht und die Patrone nach Kauf nicht funktioniert , dann ist das schon gedeckt.
(Diese Variante wäre dann deiner Frage nach die "Drucker Garantie")

Und es gibt die Nur-Ersatzteil-Garantie. Hier wird "nur" auf die Bauteile, also auch Zubehör geschaut und Garantie drauf ( 3,4 oder 5 Jahre) gewährt.
Je nach Modell gibt es unterschiedliche hohe Umfänge, die sogar im Vierstelligen Bereich liegen.Deshalb diese penible Unterteilung ( wo ich quasi sicherstellen möchte, dass nur und ausschließlich zu dem betreffenden Drucker die zugehörigen Positionen zugeordnet sind).
Dies wäre dann deiner Frage nach die Garantie fürs Zubehör. Obwohl sich das nicht so direkt auf "nur Zubehör" oder "Nur Drucker" unterteilen lässt, denn beides besitzt Teile, auf die Garantie gewährleistet wird....On Top müsste da dann ein Datum vorhanden sein ( also Start und Ablauf der Garantie. Ich hatte für die Angebotsposition an einen Satz wie: Bei heutiger Bestätigung des Angebotes läuft Ihre Garantie am xx.xx.xxxx ab - gerechnet auf Basis des Angebotsdatums)

Zitat
ZitatWie geht Funktion "InAktiv" in DB, da hab ich noch nie von gehört?
Ich habe doch nicht geschrieben von einer Funktion. "InAktiv" ist sonst nichts als ein Ja/Nein Feld das angehakt wird wenn der Drucker nicht mehr im Angebot ist. Gleiches kann auch für das Zubehör gemacht werden.
ahso, ich habe wegen des Wortes inAKTIV das dann als "Funktion" vermutet. Ok, dann hab ich das verstanden wie das gemeint war  :) 

ZitatWas die Preise betrifft, so gibt es auch eine einfache Version, die bei Dir ausreichen könnte. Bei der Auswahl eines Druckers oder Zubehör wird der aktuelle Preis aus den entsprechenden Tabellen ermittelt und redundant in der Angebotsdetailtabelle gespeichert.
Hm, ok, das ist mir noch nicht so ganz klar, da genau dies ebenfalls eine relativ ausufernde Geschichte ist.
Ich habe EKPreis, Aufschlag Drucker (nur bei Drucker so),Marge(Gewinn),USt und aus EK+Marge+Aufschlag dann den VKNetto Preis.
Meinst du mit redundant speichern die Untertabellen in Access? (Mit denen habe ich noch gar nicht gearbeitet...)

Ich habe erstmal Zettel und Stift gegriffen und mir die neu zusammengestellte Struktur auf Papier skizziert.
Sobald ich die Positionen in eine Beziehungstabelle gegossen habe, poste ich die hier rein :

DANKE für die ganzen Korrekturen und Anregungen und Hinweise. Das hilft mir absolut weiter!

Grüße,
Astra

AstraDyne

Hallo Klaus,
Hier der neue Entwurf der Datenbank.

Die Tabelle Preise hatte ich nur entworfen und (noch)nicht eingebunden, weil ich nicht sicher war, ob die benötigt werden wird.

Bei Marge war ich unsicher, ob ich die auch als Zahl "Double" (so wie Du MwSt im Beispiel) formatieren soll oder als Währung, denn geplant ist ein Feld, wo für die Berechnung mit unterschiedlichen Margen jongliert werden kann.

Bei Kontakt bin ich ebenfalls nicht sicher, ob der Inhalt in die tblKontaktArt soll oder in die TblKontakte.
Gefühlt in die TblKontakte, aber dann ist mir nicht klar, warum ich eine Tabelle mit Nur ID bei KontaktArt haben sollte. Meinem Verständnis nach müsste dann in der TblKontaktArt ja auch dementsprechend die Art vorhanden sein (also Inhalt) oder hab ich das nun durcheinandergebracht?

Viele Grüße und Danke für Deine Geduld mit mir!

Astra

MzKlMu

#20
Hallo,
die Tabelle Kontaktart ist falsch. Das was Du als Feldnamen hast, sind Datensätze.
Telefon, Mobil, Fax, Email, Homepage also 5 Datensätze. Telefon2 braucht es nicht gibt es eine weitere Telefonnummer, gibt das einfach ein weiterer Eintrag (Datensatz) in der Tabelle Kontakte. Da kannst Du auch 10 Telefonnummern erfassen und noch 5 Email dazu. Daher könnte in der Tabllle Kontakte noch ein Feld für Bemerkungen sinnvoll sein. Außerdem fehlt in der Kontaktetabelle noch ein Feld für den eigentlichen Eintrag.

Siehe angehängtes Bild.

In der Preistabelle fehlt noch ein Fremdschlüsselfeld zum Drucker und eines zum Zubehör, eines davon ist jeweils leer. In den Angebotspositionen fehlt noch ein Feld für den Preis.
Wenn ein Drucker oder Zubehör ausgewählt wird, wird aus der Preistabelle der Preis ermittelt und dann redundant in der Tabelle für die Angebotspositionen gespeichert. Redundant bedeutet noch mal gespeichert. Schlage redundant mal bei Wikipedia nach, mit Untertabellen hat das nichts zu tun.
Für alles was mit Geld zu tun hat solltest Du Währung nehmen, auch für die Mwst (Double bei mir war ein Versehen). Das Währungssymbol kann man entfernen.

Frage zur Marge. Der Verkaufspreis wird ja an Hand der Marge festgelegt. Wobei die Marge ja nur ein Anhaltswert sein kann. Denn wenn über die Marge gerechnet ein VK-Preis von z.89,79 € rauskommt, würde man ja diesen Preis nicht als Verkaufspreis verwenden, sondern nach oben oder unten anpassen, wodurch sich auch die Marge ändert.

Für die PLz mit Ort solltest Du eine Tabelle anlegen ebenso für das Bundesland.
Die Ortstabelle kriegt dann einen FS zum Bundesland und beim Kunden wird nur der FS zur PLZ gespeichert.
Wenn Du das nicht machst, muss man immer PLZ, Ort und Bundesland extra eintargen mit dem Risiko von Tipp und Zuordnungsfehlern. Die PLZ wird per Kombi gewählt, das reicht dann.

Da gibt es aber noch weitere Ungereimtheiten.

- Wieso gibt es bei den Garantien einen EKPreis und Margen ?
- Die Marge und EKPreis gehören in die Preistabelle
- Garantietabelle ist auch zu hinterfragen. Was ist denn der Zeitrahmen ?
- Wieso gibt es beim Drucker, beim Artikel und bei den Garantien eine Menge?
- Was passiert, wenn es den Druckertyp auch im nächsten Jahr noch gibt aber der EKPreis sich geändert hat ?
- Wo soll der Rabatt einfließen, der Rabatt kann sich ja auch ändern. Und wenn jemand 3 Drucker kauft, kann das ein anderer Rabatt sein wie bei einem.

Das ist noch lange nicht ausgegoren.

Sollen mit der DB auch Rechnungen geschrieben werden ?
Gruß
Klaus

AstraDyne

....uuuuuups, falsches Bild gepostet...hier das korrekte mit Zuordnungstabelle.....Entschuldigung

MzKlMu

Hallo,
ich habe meinen Beitrag in #20 mehrfach ergänzt und geändert, bitte ggf. noch mal lesen.
Gruß
Klaus

AstraDyne

Zitat von: MzKlMu am Februar 27, 2024, 16:25:34Hallo,
ich habe meinen Beitrag in #20 mehrfach ergänzt und geändert, bitte ggf. noch mal lesen.

Entschuldigung, ja, wir haben uns zeitlich leider überschnitten ;-(   ...ich arbeite gerade alle Hinweise ab und poste gleich den korrigierten Screenshot, solbald ich das alles eingetragen habe...DANKE schon vorab für diesen wahnsinnig tollen Support und diese Mühe!
Bis gleich

AstraDyne

Hallo Klaus,


ZitatFrage zur Marge. Der Verkaufspreis wird ja an Hand der Marge festgelegt. Wobei die Marge ja nur ein Anhaltswert sein kann. Denn wenn über die Marge gerechnet ein VK-Preis von z.89,79 € rauskommt, würde man ja diesen Preis nicht als Verkaufspreis verwenden, sondern nach oben oder unten anpassen, wodurch sich auch die Marge ändert.
Das ist korrekt.Aber die Frage konnte ich nun nicht ganz herauslesen.
Die Ausgangsposition soll so aussehen:
Der Sachbearbeiter "darf" zu den jeweiligen Rubriken mit der Marge um einen bestimmten Bereich herum "spielen".....
Ein Beispiel: Für Drucker rechnet er "nur 22% Marge...für Patronen 30% und auf die Garantien 20%...das ist kein "Fixum".Leider, sonst wäre es einfach.
Aber genau das ist es, was mir zusätzlich den klaren Blick versperrt hat, denn da eine variable Abfrage auf alle Rubriken, da ist dann mein Schädel explodiert  ;D
In der ersten Variante hab ich erstmal den Standard Prozentsatz,d er hauptsächlich verwendet wird, als Operator fix eingegeben. Praktisch wäre nun, ein Feld zu haben, wo man im oberen Bereich diese Prozente eingeben kann und das ausrechnen für alle Rubriken dann mit diesem Wert alle erstmal berechnet. Wenn man dann anschließend etwas nach unten korrigieren möchte, oben nochmal den Prozentsatz ändern.Auch mit "krummen" Zahlen, z.B. 22,87 oder 28,43%.....das wäre eine super Sache, aber da was dann endgültig der Ofen aus, als ich da drauf herum gedacht hatte.

Ich bin auch nicht sicher, ob man besser in dem Feld der Marge mit Prozent (eingebbar oben in Angebote dann) ) arbeitet, um das dann per Rechenoperation als Betrag ausgeben zu lassen oder gleich als Währungsbetrag, dann auch über eine Rechenoperation , aber direkt als Euro ausgegeben....?!

ZitatFür die PLz mit Ort solltest Du eine Tabelle anlegen ebenso für das Bundesland.
Die Ortstabelle kriegt dann einen FS zum Bundesland und beim Kunden wird nur der FS zur PLZ gespeichert.
Wenn Du das nicht machst, muss man immer PLZ, Ort und Bundesland extra eintargen mit dem Risiko von Tipp und Zuordnungsfehlern. Die PLZ wird per Kombi gewählt, das reicht dann.

Das stimmt, das habe ich jetzt gleich mit einfliessen lassen.

ZitatDa gibt es aber noch weitere Ungereimtheiten.

- Wieso gibt es bei den Garantien einen EKPreis und Margen ?
- Die Marge und EKPreis gehören in die Preistabelle
- Garantietabelle ist auch zu hinterfragen. Was ist denn der Zeitrahmen ?
- Wieso gibt es beim Drucker, beim Artikel und bei den Garantien eine Menge?
- Was passiert, wenn es den Druckertyp auch im nächsten Jahr noch gibt aber der EKPreis sich geändert hat ?
- Wo soll der Rabatt einfließen, der Rabatt kann sich ja auch ändern. Und wenn jemand 3 Drucker kauft, kann das ein anderer Rabatt sein wie bei einem.


<---Garantien: EKPreis soll nur anzeigen (auch in den anderen Tbl), dass es sich um den Netto Preis Händler
    handelt, der nicht an Kunde herausgegeben wird. Er entspricht halt dem Preis wie in der
    Beispieltabelle von dir angegeben mit "Einzelpreis" oder "Einzelpreis Netto" )
<---Ok, wenn Marge in die Preistabelle gehört, dann müsste ich diesen Feldwert ja auch bei Drucker,Artikeln
    und Garantien rausnehmen oder als Fremdschlüssel zur Preistabelle machen, damit ich das oben
    geschriebene hinbekomme: die Anzeige für alle Rubriken a la: 28% oder ähnlich .....richtig?
    Ich hatte das in jeder Rubrik Extra gemacht, weil ich ursprünglich mit dem gedanken gespielt hatte,
    dass man je Rubrik dann einen eigenen Prozentsatz verwenden könnte, so wie die das bisher immer machen.
<---Garantietabelle : 3 Jahre, 4 Jahre, 5 Jahre. Keine anderen Zeiträume. Diese 3 gibt es.
<---Ok, ja, das hatte ich ja vorhin schon von Dir angenommen diesen Hinweis und deshalb schonmal vorab die
    Preistabelle mit reingemacht noch ohne Verbindungen. Diese Beziehungenhabe ich jetzt mit angelegt
<---Die Rabattspalte hatte ich bei Kunden mit untergebracht, da das Kundenbezogen wäre. Also: Auf das
    Angebot hat Kunde Z einen anderen Rabatt als Kunde Y. Nach Dauer der Kundenbeziehung, nicht nach
    Druckermenge. Die Marge auf die Drucker ist das, was hier vom Sachbearbeiter quasi so ein bisschen 
    Rabattähnlich mit einfliessen gelassen werden kann.


ZitatSollen mit der DB auch Rechnungen geschrieben werden ?


Nein. Die Rechnungserfassung ist in einem eigenen Programm an die Buchungen angebunden und wird dort dadurch direkt oder besser: Dann zu erhandeltem vereinbartem Preis manuell erfasst .

Ich hoffe, ich habe nun nichts übersehen
Grüße,
Astra

MzKlMu

Hallo,
habe Dir noch mal ein Bild angehängt was zu tun ist. Das mit der Kontaktart hast Du noch nicht verstanden.
In der Tabelle gibt es 2 Felder, den PS und die Kontaktart. Jede Art einen eigenen Datensatz. Das was jetzt Feldnamen sind gibt Feldeinträge in 5 Datensätzen.
Gruß
Klaus

AstraDyne

#26
Hallo Klaus,

Du hast Recht-das stimmt mit der Kontaktart .....das hab ich tatsächlich überhaupt nicht gerafft  :-X  ::)  :(  :-\ .
F40, der Fehler sitzt immer 40 cm vor der Tastatur ...mir fehlt gerade der Smiley mit dem Kopf gegen die Wand knallen ;D  Mittlerweile komme ich mir schon ziemlich dusselig vor *HändeübernKoppzusammenschlag


DANKESCHÖN! für deine Geduld...!
Du ahnst wahrscheinlich gar nicht, wieviel ich in den letzten 48 Stunden gelernt habe! Da kann ich Dir gar nicht genug Danken und stehe tief in deiner Schuld!

Ich änder es ab und versuche mal, schon ein wenig bis morgen an Abfragen zu testen und ein paar Tabellen zu füllen.


Einen schönen RestAbend Dir
Viele Grüße,
Astra

AstraDyne


Hallo Klaus,

ZitatDas mit der Kontaktart hast Du noch nicht verstanden.
In der Tabelle gibt es 2 Felder, den PS und die Kontaktart. Jede Art einen eigenen Datensatz. Das was jetzt Feldnamen sind gibt Feldeinträge in 5 Datensätzen.
..nicht nur das mit der Kontaktart.....ich hab ein wenig herumprobiert und es funktioniert ein wenig, aber das mit den ausgelagerten PLZ und Bundesländern leider nicht.
Ich denke, da mache ich etwas verkehrt. So, wie die Beziehungen gesetzt sind, macht das Formular bei den Kontakten beim anlegen eines Kunden Schluß an genau dem Punkt PLZ.
 Ich kriege zwar die PLZ ausgewählt, aber der Ort wird nicht dann automatisch in den Ort eingetragen (in das Feld), obwohl er ja mit ausgewählt ist und in der Tabelle zu der PLZ steht.
Ich vermute, dass ich da die Felder "zusammenlegen" muss in ein Textfeld oder so und nicht als Einzelfelder setzen darf.
Aber, das Hauptproblem ist, dass es eher nun zwei bis dreigeteilt ist durch diese PLZ und Bundesland-Auswahl.
Heisst: Die Daten des neu angelegten Kunden "sliden" oben dann weg, wenn man einen neuen Kunden anlegen will, der Rest bleibt aber stehen, als würde er nicht zur Adresse des Kunden mit der entsprechenden Kundennummer dazugehören.
Ich denke, da ist noch etas nicht zugeordnet worden von mir.

Da habe ich irgendwie ein Dejavu. Mir ist so, als hätte ich das schon mal so gehabt und den Fehler nie wegbekommen und daher meine Adressen immer lieber "komplett" in eine Tabelle gemacht, damit ich sie "En Block"  sichern kann.
 Dieses "zerfaserte" ist eigentlich korrekt und gehört richtigerweise so aufgrund der Funktionen, Eventualitäten und so weiter. Aber, für mich ist es irgendwie "sperrig", weil es nicht so die Griffigkeit hat. Ich dokter' da an diesen Unterbeziehungen echt rum und es ist nicht mein Lieblingsthema (weil da Einiges nicht verständlich ist für mich und ich es noch nicht verstanden habe, das weiß ich) .
Ein Frustthema. Das macht mich vogelig, wenn das dann einfach nicht so geht, wie es soll.

Ich bleibe aber weiter am Ball und versuche, deiner Beispieldatei folgend mein Projekt auszuarbeiten und fertigzustellen.

Bgrüße,
Astra

Nur schon mal als erste Rücmeldung   ::)




MzKlMu

Hallo,
zeige bitte mal das aktuelle Beziehungsbild.
Gruß
Klaus

AstraDyne

Hallo Klaus,


gerne, natürlich , hier:
Der OrtID_F in der Tabelle Bundeländer steht da ohne Bezug oder Nutzen. das ist noch ein Fehler drin...


P.S.:
Ich weiss, ich steh mir selbst im Weg  :(