SELECT IF
Uwe Driessen
driessen at fblan.de
Mo Mär 30 15:00:03 CEST 2009
> -----Original Message-----
> From: mysql-de-bounces at lists.4t2.com [mailto:mysql-de-bounces at lists.4t2.com] On Behalf
> Of Thomas Goik - auxion.de
> Sent: Monday, March 30, 2009 1:58 PM
> To: mysql-de at lists.4t2.com
> Subject: RE: SELECT IF
>
> Hallo Uwe,
>
> > TYPE NS ist mindestens 2 mal und MX kann X mal vorhanden sein
> >
> > Domain.de NS ns1.domain_hoster.de
> > Domain.de NS ns2.domain_hoster.de
> >
> > Domain.de MX prio=10 mx1.domain_hoster.de
> > Domain.de MX prio=20 mx.domain.de
> > Domain.de MX prio=30 mail.domain2.com
> >
> >
> ist es da nicht sinnvoller de CONTENT-Part nicht mit concat beim erstellen
> zu schreiben sondern beim lesen,
> oder eben den DNS Eintrag als eigenen Wert mit angeben, dann könntest du
> diesen mit dem UNIQUE KEY belegen und würdest dir das ganze sparen können?!
>
> CREATE TABLE IF NOT EXISTS `records` (
> `id` int(11) NOT NULL auto_increment,
> `domain_id` int(11) default NULL,
> `name` varchar(255) default NULL,
> `type` varchar(6) default NULL,
> ++ `dns_url` varchar(255) default NULL
> `content` varchar(255) default NULL,
> `ttl` int(11) default NULL,
> `prio` int(11) default NULL,
> `change_date` int(11) default NULL,
> PRIMARY KEY (`id`),
> ++ UNQIUE KEY `dns_url`(`dns_url`),
> -- KEY `rec_name_index` (`name`),-- name hast du schon im unteren INDEX!!
> KEY `nametype_index` (`name`,`type`),
> KEY `domain_id` (`domain_id`)
> ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Bei so was wie dem DNS der dann von Standardapplikationen abgefragt wird weiche ich ungern
vom Standard ab. Beim nächsten Update knallt es dann.
Der Patch für die Implementierung sollte auch auf anderen Maschinen die eben nur Standard
installiert haben ebenso laufen.
Die eine Abfrage war nur als Beispiel gedacht insgesamt sind es sogar 6 Abfragen um eben
genau den Datensatz zu ermitteln der gebraucht wird.
2 Abfragen für NS einer für den ersten einer für den 2. Nameserver
2 Abfragen für die A records www.domain und domain
1 Abfrage für den MX
1 Abfrage für den SOA (der war das Beispiel)
SOA und A records sind in der Regel eindeutig da zu jedem Namen eigentlich nur ein Record
existieren sollte (es gibt aber selbst da Firmen die mehrere eintragen um evtl.
Lastverteilung zu erreichen)
Im DNS gibt es dann noch die AAA, CNAME, SPIF usw. einträge daraus dann immer einen
eindeutigen Schlüssel zu generieren der bei der Abfrage dann mit den eingetragenen Werten
übereinstimmt wüsste ich nicht wie es gehen sollte.
Passt es bei dem einen dann sicherlich nicht mehr beim Anderen
Ich bin daran es über 2 Statements zu lösen erst die Satz ID ermitteln dann wenn vorhanden
mit der satzid überschreiben wenn nicht vorhanden steht als ID 'NULL' und damit fügt MySQL
einen neuen Datensatz ein.
>
>
> Mit freundlichen Grüssen
> Thomas Goik
Mit freundlichen Grüßen
Drießen
--
Software & Computer
Uwe Drießen
Lembergstraße 33
67824 Feilbingert
Tel.: +49 06708 / 660045 Fax: +49 06708 / 661397