ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
488
488
EMPFEHLEN
-
Hallo zusammen,
derzeit stehe ich vor einem Problem, zwischen Performance und Speichernutzung.
Konkret gesagt, ich will die Geburtsdaten von Autoren erfassen jedoch erstellt sich das ganze schwieriger als gedacht. Da z. B. nicht für alle Autoren ein genaues Datum gibt, wann diese geboren sind. Deswegen habe ich derzeit Mehrer Lösungsansätze jedoch kann ich mich nicht so wirklich für den passenden entscheiden.
Alles in eine Spalte schreiben, z. B. 20000120
Code sql:1 2 3 4 5
CREATE TABLE `date` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `date` INT(8) UNSIGNED ZEROFILL NOT NULL DEFAULT '0', `christ` ENUM('TRUE','FALSE') NOT NULL DEFAULT 'FALSE, PRIMARY KEY (`id`)) ENGINE=MyISAM CHARSET=utf8;
Jeden Teil, des Datums einzeln Speichern und einem ENUM-Feld, was einem zeigt, ob es v. Chr. ist oder nicht.
bzw. das Jahr negativ setzten wenn es v. Chr. ist, umso ohne ein weiteres ENUM zu Sparen.Code sql:1 2 3 4 5 6 7
CREATE TABLE `date` ( `id` INT(8) NOT NULL AUTO_INCREMENT , `date_day` INT(2) NULL , `date_month` INT(2) NULL , `date_year` INT(4) NULL , `christ` ENUM('TRUE','FALSE') DEFAULT 'FALSE, PRIMARY KEY (`idnew_table`) );
Code sql:1 2 3 4 5 6
CREATE TABLE `date` ( `id` INT(8) NOT NULL AUTO_INCREMENT , `date_day` INT(2) NULL , `date_month` INT(2) NULL , `date_year` INT(4) NULL , PRIMARY KEY (`idnew_table`) );
Meine Idee war auch schon, es in einem anderen Datumsformat zu speichern, das Problem ist jedoch ab und an ist nur das Jahr angeben. Gut hier könnte ich es negativ speichern, doch wie weiße ich es dann zu, wenn v. Chr. ist? (Julianisches Datumsformat).
Code sql:1 2 3 4
CREATE TABLE `date` ( `id` INT(8) NOT NULL AUTO_INCREMENT , `date` INT(8) NULL , PRIMARY KEY (`idnew_table`) );
Am Liebsten würde ich alles in eine Spalte Speichern, so wie beim 1. Lösungsansatz. Das Problem ist nur, ich kann die Werte nicht Negativ Speichern. Gerne würde ich auch bei INTbleiben, für Abfragen mit BETWEEN ...
Freu mich auf Tipps und Meinungen zu meinen Lösungen.
Lg F0rrisEin Nutzer braucht das Root-Passwort so dringend wie Nitroglyzerin durchgeschüttelt werden muss.
-
Hi,
du kannst doch den Datentyp BIGINT (signed) nutzen, dann hast du ca. 292.000 Jahre in beide Richtungen zur Verfügung, ob das Jahr bekannt ist, kannst du ja als TINYINT(1) speichern.
Gruß Kyôya StefanOracle Certified MySQL 5 Professional Developer
Zend Certified PHP 5.3 Engineer
Vorträge, Webinare, etc im Mayflower - Blog
Ähnliche Themen
-
mySQL Geburtstage ermitteln?
Von wachteldonk im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 06.06.11, 23:17 -
news sortieren mittels mysql date funktion ?
Von Trasher im Forum PHPAntworten: 2Letzter Beitrag: 23.04.07, 19:26 -
Datum aus String lesen und in MySQL-Date speichern
Von DaRealMC im Forum PHPAntworten: 1Letzter Beitrag: 21.02.06, 18:35 -
Datum (String) in MySQL-Tabelle (date) speichern
Von NiciB im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 02.11.05, 18:15 -
return 0; außerhalb der Funktion
Von SebastianHL im Forum C/C++Antworten: 3Letzter Beitrag: 13.09.04, 15:27





Zitieren
Login





