Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Aufbau der Datenbankstruktur korrekt?

Begonnen von -Tom-, Dezember 31, 2009, 18:12:07

⏪ vorheriges - nächstes ⏩

-Tom-

Zitat von: MzKlMu am Januar 02, 2010, 18:58:56
Das würde ich unter keinen Umständen so lassen. Zahlen die eindeutig Zahlen sind, kriegen den Datentyp Zahl. Alles andere ist Krampf. Wenn die Option nicht vorhanden ist, lasse das 2.Feld dann leer

Wenn Du meinst, versteh zwar nicht ganz wo dabei das Problem ist. Klar könnte ich auch das Feld leer lassen, nur wollte ich mit einem leeren Feld signalisieren dass der Wert noch nicht bekannt ist, weil noch nicht alle Werte jedes Motors aufgenommen sind.

Tom
Computerprobleme??? -> http//www.weber-computerhilfe.de

Fordere keine Anerkennung!
Zeige was und man wird Dich kennen

MzKlMu

#16
Hallo,
den 2.Teil meiner Antwort zu "----" hast Du in Deinem Zitat unterschlagen:
Zitatdas leere Feld kann problemlos im Formular mit "----" (Oder Nv oder was auch immer, jedes Feld unterschiedlich wenn zweckmäßig) angezeigt werden, nur angezeigt, aber nicht gespeichert.
Und das problem hast Du schon erkannt, daher die Sortierspalte. Was machst Du wenn in einer solchen Spalte ein Wert dazukommt? Alle Sortierzahlen ändern?

Es geht weiter.
So kann man keine 1:1 Beziehungen anlegen. 1:1 Beziehungen dürfen nicht über 2 Primärschlüssel gemacht werden. Mit Autowerten kann es auch nicht funktionieren. Autowerte sind ja nicht frei verfügbar und eine Seite muss frei sein. Du kannst auch nicht einfach das Feld Getriebe zum Primärschlüssel machen, das macht auch keinen Sinn. Das Feld Getriebe wird indiziert (Duplikate Nein) damit wird das eine 1.1 Beziihung. Baue jetzt aber mal nichts um. Ich baue Dir das morgen mal ein.

Zunächst weitere Fragen:
Wird der Tagname einmalig vergeben für jeden Motor oder nur wenn der Motor eingebaut ist?

Was ist:
Kostenstelle? Nur wenn eingebaut oder generell?
Verteilung?
Ort?
Anlage?
Verwendung?
SZNr?
LagerNr?, nur wenn der Motor auf Lager ist, oder immer vorhanden und dann immer gleich?
Überholt?
Motor?

Die Antriebsart ist so falsch. Drehstrom oder Gleichstrom ist eine Eigenschaft des Motors. Die anderen Werte in dieser Tabelle zeigen das was der Motor antreibt (angetriebnes Anbauteil). Das gehört auch nicht in diese Tabelle, das gibt eine n:m Tabelle zwischen Motor und Anbauteil.

Die Motortabellen sollten sinnvoll geteilt werden.

tbl_MotorGrunddaten
tbl_MotorElDaten
tbl_MotorMechDaten

Bei Leistung,Spannung, Strom, Drehzahl, Drehmoment kann es da nur max je 2 Werte geben?


Du solltest Dir darüber klar werden, dass da noch einiges zu tun ist.
Ich habe auch nur Morgens und Abends Zeit.

Bitte keine Umbauten machen, beantworte erst mal noch obige Fragen.

Noch eine Frage: hat ein Motor eine Inventarnummer oder sonst eine eigene Nummer in Eurem System die der Motor über seine Lebendsdauer behält, oder ist das die tagnummer?
Gruß Klaus

-Tom-

Zitat von: MzKlMu am Januar 02, 2010, 20:19:13
Und das problem hast Du schon erkannt, daher die Sortierspalte. Was machst Du wenn in einer solchen Spalte ein Wert dazukommt? Alle Sortierzahlen ändern?

Hätte ich wohl oder übel machen müssen

Zitat von: MzKlMu am Januar 02, 2010, 20:19:13
Wird der Tagname einmalig vergeben für jeden Motor oder nur wenn der Motor eingebaut ist?

Nur wenn Motor eingebaut

Zitat von: MzKlMu am Januar 02, 2010, 20:19:13
Kostenstelle? Nur wenn eingebaut oder generell?
Verteilung?
Ort?
Anlage?
Verwendung?
SZNr?
LagerNr?, nur wenn der Motor auf Lager ist, oder immer vorhanden und dann immer gleich?
Überholt?
Motor?

Kostenstelle wird soweit ich weiß nur vergeben wenn eingebaut.
Verteilung: Station von der die Zuleitung kommt
Ort bezeichnet den Schaltschrank innerhalb der Station
Anlage=Anlagenkennzeichen
Verwendung für was wird der Motor verwendet
SZNr.: das soll mal die Lebenslang eindeutige Nummer des Motors werden
LagerNr: Nur wenn im Lager
Überholt: In welchem Jahr der Motor das letztemal überholt wurde.
Motor: Wo steht das?

Diese Daten außer Kostenstelle will ich über reine Textfelder eingeben.

Zitat von: MzKlMu am Januar 02, 2010, 20:19:13
Die Antriebsart ist so falsch. Drehstrom oder Gleichstrom ist eine Eigenschaft des Motors. Die anderen Werte in dieser Tabelle zeigen das was der Motor antreibt (angetriebnes Anbauteil). Das gehört auch nicht in diese Tabelle, das gibt eine n:m Tabelle zwischen Motor und Anbauteil.

Das habe ich halt so aus der vorhandenen Motorenliste übernommen.

Zitat von: MzKlMu am Januar 02, 2010, 20:19:13
Bei Leistung,Spannung, Strom, Drehzahl, Drehmoment kann es da nur max je 2 Werte geben?

Ja

Zitat von: MzKlMu am Januar 02, 2010, 20:19:13
Du solltest Dir darüber klar werden, dass da noch einiges zu tun ist.

Was muss denn noch alles gemacht werden? Wenn die Beziehungen noch stimmen und die Motordaten ordentlich aufgeteilt sind dann wars das doch oder nicht?


Zitat von: MzKlMu am Januar 02, 2010, 20:19:13
Noch eine Frage: hat ein Motor eine Inventarnummer oder sonst eine eigene Nummer in Eurem System die der Motor über seine Lebendsdauer behält, oder ist das die tagnummer?

Siehe SZNr

Tom
Computerprobleme??? -> http//www.weber-computerhilfe.de

Fordere keine Anerkennung!
Zeige was und man wird Dich kennen

MzKlMu

Hallo,
ZitatMotor: Wo steht das?
In der Tabelle tbl_Motor.
ZitatWas muss denn noch alles gemacht werden?
An der Struktur muss naoch einiges geändert werden, daher die gezielten nachfragen. Die oben nachgefragten Felder müssen aus der Motordatentabellen raus. Das gibt eine eigene Tabelle die diese Dinge als komplette Historie abbildet. Das wirst Du dann schon sehen.
Gruß Klaus

-Tom-

Zitat von: MzKlMu am Januar 02, 2010, 21:55:21
Hallo,
ZitatMotor: Wo steht das?
In der Tabelle tbl_Motor.

Das ist nur drin damit ich die Beziehung von der tbl_Motor1 und tbl_Motor2 mit der tbl_Motordaten bekommen. So wie auch Getriebe, Bremse und Heizung.

Zitat von: MzKlMu am Januar 02, 2010, 21:55:21
An der Struktur muss naoch einiges geändert werden, daher die gezielten nachfragen. Die oben nachgefragten Felder müssen aus der Motordatentabellen raus. Das gibt eine eigene Tabelle die diese Dinge als komplette Historie abbildet. Das wirst Du dann schon sehen.

OK

Tom
Computerprobleme??? -> http//www.weber-computerhilfe.de

Fordere keine Anerkennung!
Zeige was und man wird Dich kennen

MzKlMu

So, hat etwas länger gedauert.
Anbei mal der 1.Entwurf.
Die Tabellen habe ich geteilt wie es mir sinnvoll erschien. Weiterhin habe ich die ganzen Sortierspalten entfernt. Die beziehungen zu den Nachschlagetabellen habe ich mal wegen der Übersichtlichkeit entfern. Wenn alles soweit klar ist, kannst Du diese dann ergänzen (muss dann sein).
den Abaluf habe ich mir jetzt wie folgt gedacht.

Neuer Motor in einem Koplettformular mit allen Daten erfassen.
1.Datensatz in der Tabelle:
tbl_VorgaengeZumMotor
Vorgangsart:Beschaffung
Vorgangsdatum: Datum
KostenPreis: Anschaffungspreis
Vorgangsinfo: Weitere Informationen dazu.

2.Datensatz
Vorgangsart:Einbau
Vorgangsdatum: Datum
KostenPreis:
Vorgangsinfo: Weitere Informationen zum Einbau.
In der Tabelle "tbl_Einbau" werden alle relevanten Infos zum Einbauort abgelegt.

In ähnlicher Art und Weise werden dann Vorgänge wie Ausbau, Inspektion, Überholung, Auf Lager, Verschrottung etc. festgehalten. Manche Felder bleiben dann halt leer. Jediglich der Einbau erfordert eine weitere Tabelle.

Verbesserungsvorschläge:
Simmerringtabelle teilen in AD, ID, B dazu den Typ des Simmerings und Material, Perbunan etc.
Das Gleiche gilt auch für die Lagertypen.

DB (02) anbei.

[Anhang gelöscht durch Administrator]
Gruß Klaus

-Tom-

Zitat von: MzKlMu am Januar 04, 2010, 14:14:09
den Abaluf habe ich mir jetzt wie folgt gedacht.

Neuer Motor in einem Koplettformular mit allen Daten erfassen.
1.Datensatz in der Tabelle:
tbl_VorgaengeZumMotor
Vorgangsart:Beschaffung
Vorgangsdatum: Datum
KostenPreis: Anschaffungspreis
Vorgangsinfo: Weitere Informationen dazu.

2.Datensatz
Vorgangsart:Einbau
Vorgangsdatum: Datum
KostenPreis:
Vorgangsinfo: Weitere Informationen zum Einbau.
In der Tabelle "tbl_Einbau" werden alle relevanten Infos zum Einbauort abgelegt.

In ähnlicher Art und Weise werden dann Vorgänge wie Ausbau, Inspektion, Überholung, Auf Lager, Verschrottung etc. festgehalten. Manche Felder bleiben dann halt leer.

Also Du meinst mit einem Formular alle Daten des Motors (ElDaten,Grunddaten,Mechdaten) aufnehmen und dann über ein weiteres Formular die jeweiligen Vorgänge zum Motor.

Zitat von: MzKlMu am Januar 04, 2010, 14:14:09
Jediglich der Einbau erfordert eine weitere Tabelle.

Erfordert das Lager nicht auch eine weitere Tabelle für Lagernr und Lagerort?

Zitat von: MzKlMu am Januar 04, 2010, 14:14:09
Verbesserungsvorschläge:
Simmerringtabelle teilen in AD, ID, B dazu den Typ des Simmerings und Material, Perbunan etc.
Das Gleiche gilt auch für die Lagertypen.

Gut gemeint, aber ich denke das ist dann zuviel Aufwand. Mir reicht das so vollkommen.

Was sind das für Tabellen (MSysAccessStorage,MSysAccessStorage_1) die unter Beziehungen noch angezeigt werden?

Möcht mich auch mal für die Hilfe bedanken!

Tom
Computerprobleme??? -> http//www.weber-computerhilfe.de

Fordere keine Anerkennung!
Zeige was und man wird Dich kennen

MzKlMu

Hallo,
ZitatAlso Du meinst mit einem Formular alle Daten des Motors (ElDaten,Grunddaten,Mechdaten) aufnehmen und dann über ein weiteres Formular die jeweiligen Vorgänge zum Motor.
Genau, so meinte ich das.
ZitatErfordert das Lager nicht auch eine weitere Tabelle für Lagernr und Lagerort?
Im Prinzip ja, aber da es nur 2 Felder sind, die bei anderen Vorgängen dann leer bleiben, wollte ich diese weitere tabelle vermeiden. Aber um es klar zu sagen, im Sinne der Normalisierung wäre es notwendig. Aber ich vetrete eher die Meinung nicht unter allen Umständen normalisieren.

ZitatWas sind das für Tabellen (MSysAccessStorage,MSysAccessStorage_1) die unter Beziehungen noch angezeigt werden?
Das ist mir auch ein Rätsel, ich kriege die auch nicht weg.
Da mich das interessiert, werde ich da mal einen eigenen Beitrag eröffnen.
Gruß Klaus

accessundich

Dabei handelt es sich um Systemtabellen.
die bekommt man meines Wissens via Tools-Option-view (oder so ähnlich) und dort bei "Hidden Objects" raus. Habe Access2007 und momentan kein anderes zur Hand.
Und im Beziehungsfenster einfach löschen, da kann nichts passieren.

Bis denne
Andi
---
Ich stelle keine komischen Fragen: Ich bin komisch.

MzKlMu

Hallo,
@Andi
ZitatDabei handelt es sich um Systemtabellen.
Ja, das ist mir klar, nur wie kommen die da rein, ich habe diese nicht hinzugefügt. In den Optionen ist auch die Anzeige der Systemobjekte abgeschaltet.
Gruß Klaus

accessundich

Meines Erachtens gehört das zu den Mysterien von Access. Da habe ich mittlerweile schon die tollsten Sachen erlebt.
>:(

Viele Grüße
Andi
---
Ich stelle keine komischen Fragen: Ich bin komisch.

-Tom-

#26
Zitat von: accessundich am Januar 07, 2010, 13:57:31Und im Beziehungsfenster einfach löschen, da kann nichts passieren.

Ich konnte die Beziehung löschen.

Muss das Feld Heizung in der Tabelle tbl_MotorElDaten korrekterweise nicht auch HeizungID_F heißen?

EDIT

Mit dem Feld Motorart in der Tabelle tbl_MotorElDaten meinst du die Antriebsart oder?

-Tom-
Computerprobleme??? -> http//www.weber-computerhilfe.de

Fordere keine Anerkennung!
Zeige was und man wird Dich kennen

MzKlMu

Hallo,
ZitatMuss das Feld Heizung in der Tabelle tbl_MotorElDaten korrekterweise nicht auch HeizungID_F heißen?
Ja, so sollte es sein. Alle Fremdschlüsselfelder sollte das Anhängsel _F bekommen, damit man das immer zweifeldfrei auseinanderhalten kann. Das ist im späteren Verlauf der Enwicklung wichtig.
ZitatMit dem Feld Motorart in der Tabelle tbl_MotorElDaten meinst du die Antriebsart oder?
Damit meine ich Drehstrom oder Gleichstrom. Diese gehört nicht in die Tabelle "tbl_Antriebsart", das ist eindeutig eine elekrische Eigenschaft des Motors. In diesem Fall ist auch ein Nachschlagefeld in der Tabelle (habe ich angelegt) kein Problem.
Gruß Klaus

database

Hi, sorry wenn ich mich hier so reinhänge...

Aber nachdem ich mit genau solchen Dingen immer wieder konfrontiert bin...

Zitat von: MzKlMu am Januar 08, 2010, 10:29:13
Alle Fremdschlüsselfelder sollte das Anhängsel _F bekommen, damit man das immer zweifeldfrei auseinanderhalten kann. Das ist im späteren Verlauf der Enwicklung wichtig.

... kann man gar nicht oft genug darauf hinweisen, bereits bei der Entwicklung von Tabellen auf eine vernünftige und vor Allem EINDEUTIGE Benennung der Felder zu achten.
Wie man die Präfixe gestaltet ist nicht so wichtig, mehr dass sie verwendet werden und dass man immer die gleichen verwendet.

Gruß
Peter

-Tom-

Zitat von: MzKlMu am Januar 08, 2010, 10:29:13
ZitatMit dem Feld Motorart in der Tabelle tbl_MotorElDaten meinst du die Antriebsart oder?
Damit meine ich Drehstrom oder Gleichstrom. Diese gehört nicht in die Tabelle "tbl_Antriebsart", das ist eindeutig eine elekrische Eigenschaft des Motors. In diesem Fall ist auch ein Nachschlagefeld in der Tabelle (habe ich angelegt) kein Problem.

Aber wo kommt dann die Antriebsart hin, die muss doch dann noch in die Tabelle tbl_MotorGrunddaten, oder nicht?

Tom
Computerprobleme??? -> http//www.weber-computerhilfe.de

Fordere keine Anerkennung!
Zeige was und man wird Dich kennen