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
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.
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).
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 F0rris
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
SQL:
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.
SQL:
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`) );
SQL:
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).
SQL:
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 F0rris