Ernst Hügli schrieb: >> [...] "Jahr der Fertigstellung einer >> Komposition" [Ganzzahl, Jahreszahl nach Christus, vier Ziffern]
> [...] (ich habe dazu > angemerkt, dass in Deinem Fall Jahrzahlen aus dem Mittelalter oder gar > dem Altertum wenig realistisch sind, also vierstellige Zahlen < 1500 > oder drei- oder weniger stellige oder gar negative Zahlen)? Und hier > musst Du im Entwurf ansetzen, wobei es mindestens zwei Möglichkeiten gibt: > > * mit einer Gültigkeitsprüfung, wie sie Guenter vorschlägt; Access > sieht - im Gegensatz zu Base - eine solche Möglichkeit explizit im > User-Interface für den Entwurf vor (als Angebot: take it or leave it) > * durch Benutzung eines explizit als YEAR (o.ä.) deklarierten > Feldtyps, wie Du mich für PHPMyAdmin in einer früheren Mail > hingewiesen hast. Ich habe mit diesem Werkzeug bisher (noch?) > nicht gearbeitet, vermute aber dennoch, dass dahinter eine > vierziffrige Ganzzahl > 1582 versteckt ist, also die von Guenter > erwähnten Constraints teilweise in die Deklaration des Feldtyps > integriert wurden. Alles Andere würde wenig Sinn machen Das wurde ja im Thread mittlerweile aufgeklärt: Du hattest richtig vermutet. > Ohne sowas wird sie bei einer Selektion nach Jahren - z.B. "Alle Werke, > die nach der Jahrtausendwende komponiert wurden" - je nach Formulierung > gewisse Werke nicht finden: Setzest Du das Selektionskriterium auf > ">2000" (da das Jahr 2000 bekanntlich das letzte im 20. Jh. ist), dann > findet er den Eintrag "09" nicht, denn 09 < 2000 (als Zahlenvergleich > trivial). Oder aber: Du formulierst ">00", und dann wird er mit Ausnahme > der im Jahr 2000 (bzw. 1900, ..., wenn die Eintragungen so weit zurück > reichen) eben alles finden. > > Fazit einmal mehr: der Entwurf (neudeutsch Design genannt) bestimmt, was > Du nachher mit der DB anstellen kannst. Natürlich kannst Du im > Nachhinein den Datentyp und allfällige Constraints noch ändern - doch je > nach Anzahl Datensätzen steht Dir danach (oder davor, das ist teilweise > Ansichtssache) noch ein hartes Stück Arbeit bevor, denn Du musst dann > alle Werte anpassen - ob per Programm oder händisch ist dabei > gleichgültig. Du investierst jedenfalls ein Mehrfaches der Zeit in die > Korrektur, die Du für einen sauberen Entwurf benötigt hättest. Du musst > dann nämlich auch noch sämtliche Beziehungen, ... prüfen, ob sich da > nicht Folgefehler der Änderung einschleichen. > > Übrigens: die meisten DB und Tabellenkalkulationen haben mit > Datumvariablen die erwähnte Restriktion: vierstellig, > 1582. Die zweite > Bedingung hat mit der Kalenderreform von Papst Gregor im Oktober 1582 zu > tun, die erste ist wohl eine Frage des praktischen Nutzens bzw. der > internen Darstellung von Datumwerten. So ist es denn wohl eher von > theoretischer Bedeutung, dass Calc bereits ab dem Jahr 9958 Probleme mit > der korrekten Darstellung eines Datums bekommt (ich habe mich noch nicht > bemüht, die Ursache dieser Grenze zu eruieren - wahrscheinlich hängt es > eben mit der internen Darstellung von Daten zusammen). Als Fazit könnte man für das Attribut "Jahr der Fertigstellung einer Komposition" ziehen: Datentyp SMALLINT In den SQL-Anweisungen für Abfragen * Eine Prüfung auf Zahl mit genau vier Ziffern * Bei Eingaben einer Zahl kleiner als 1400 (also vor der Renaissancemusik) könnte man eine Rückfrage ausgeben lassen "Sind sie sicher ...?" * Beim Versuch einer Eingabe größer als das aktuelle Jahr könnte man ausgeben "Spekulationen über die Fertigstellung künftiger Werke sollen in dieser DB keinen Platz finden". Andreas -- Sammlung von Attributen für eine DB des Werkes eines Komponisten: http://borumat.de/+temp/openoffice/rohdaten-simon-barber-work.ods --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
