[TYPO3-german] direct_mail: Benutzergruppen in Empfängerliste

Stephan Schuler Stephan.Schuler at netlogix.de
Fri Nov 12 11:26:38 CET 2010


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Hallo Joey.


Auch CONCAT kann der Direct Mail Query-Generator leider nicht. Dieser Generator ist so beschränkt (im Vergleich zu dem was mit SQL sonst noch alles möglich ist) und bei großen Konstrukten auch noch so aufwändig, dass ich ihn meide wo es nur möglich ist.

Wie gesagt, ich habe diverse Anforderungen an meine Empfängeradressen die sich mit einem VIEW recht bequem (solange man SQL beherrscht) lösen lassen.

Um das Anredebeispiel zu erweitern:
SELECT
        *,
        if(
                (gender="m" AND lastname IS NOT NULL AND lastname != ""),
                CONCAT("Sehr geehrter Herr ", lastname, ","),
                if(
                        (gender="f" AND lastname IS NOT NULL AND lastname != ""),
                        CONCAT("Sehr geehrte Frau ", lastname, ","),
                        "Sehr geehrte Damen und Herren,"
                )
        ) AS salutation_de,
        if(
                (gender="m" AND lastname IS NOT NULL AND lastname != ""),
                CONCAT("Dear Mr. ", lastname, ","),
                if(
                        (gender="f" AND lastname IS NOT NULL AND lastname != ""),
                        CONCAT("Dear Mrs. ", lastname, ","),
                        "Dear Sir or Madam.,"
                )
        ) AS salutation_en,
FROM tt_address


Wenn sich ein solches Konstrukt dann aufbläst weil es gegen die Benutzerruppentabelle gejoint wird -- und da kommt eine Performancekritik ins Spiel auch wenn es sich nicht um LIKE handelt -- verwendet ich aber auch ab und an richtige Tabellen die ich vor jedem Newsletterversand aktualisiere.
Man muss dabei natürlich auch bedenken, dass ein VIEW auch das Listenmodul deutlich in Mitleidenschaft zieht, da er bei jedem Klick in den Seitenbaum aufgerufen wird um diejenige View-Teilmenge daraus zu erfragen, die auf der gerade gewählten Seite liegt.
Um Größenordnungen zu nennen: Ich betreue unter anderem eine Installation in der ~6'000 tt_address-Datensätze mit je drei bis fünf tt_address_groups und 250 Adressdatensätze aus einer völlig anderen Tabelle zusammen kommen. Die Anzahl der Sprachen soll mittelfristig auf 18 erhöht werden (zwei sind momentan realisiert, die anderen 16 Sprachen sind auf der Webseite mit Inhalt vertreten aber noch ohne Newsletteranforderung). Das Resultat meiner Anfrage hat etwa 25'000 Einträge, ein View ist hier einfach nicht möglich. Der Klick in den Seitenbaum würde sich um gute anderthalb Minuten verzögern. Stattdessen rufe ich vor jedem Newsletterversant das ein CREATE TABLE das mir tt_address in der gewünschten Weise umformt und als neue Tabelle anlegt. Das CREATE TABLE dauert zwar trotzdem noch anderthalb Minuten, aber wenigstens bleibt der Seitenbaum davon dann unbeeinflusst.


Und ja Stefan, meine Finger sind  noch in Ordnung :).


Gruß,



Stephan Schuler
Web-Entwickler

Telefon: +49 (911) 539909 - 0
E-Mail: Stephan.Schuler at netlogix.de
Internet: http://media.netlogix.de

- --
netlogix GmbH & Co. KG
IT-Services | IT-Training | Media
Andernacher Straße 53 | 90411 Nürnberg
Telefon: +49 (911) 539909 - 0 | Fax: +49 (911) 539909 - 99
E-Mail: mailto:info at netlogix.de | Internet: http://www.netlogix.de/

netlogix GmbH & Co. KG ist eingetragen am Amtsgericht Nürnberg (HRA 13338)
Persönlich haftende Gesellschafterin: netlogix Verwaltungs GmbH (HRB 20634)
Umsatzsteuer-Identifikationsnummer: DE 233472254
Geschäftsführer: Stefan Buchta, Matthias Schmidt

- -----Ursprüngliche Nachricht-----


Von: typo3-german-bounces at lists.typo3.org [mailto:typo3-german-bounces at lists.typo3.org] Im Auftrag von JoH asenau
Gesendet: Freitag, 12. November 2010 11:04
An: typo3-german at lists.typo3.org
Betreff: [TYPO3-german] Re: direct_mail: Benutzergruppen in Empfängerliste

> WHERE usergroup LIKE '%2%'
> dann findet er zusätzliche User, die nur den Gruppen 21,25,32
> zugeordnet sind
>
> Wie macht ihr das?

Da Du mit LIKE sowieso schon ordentlich Performance verschwendest, tut es auch nicht weh, wenn Du zusätzlich noch ein CONCAT einbaust:

WHERE CONCAT(',',usergroup,',') LIKE '%,2,%'

HTH

Joey

- --
Wenn man keine Ahnung hat: Einfach mal Fresse halten!
(If you have no clues: simply shut your gob sometimes!)
Dieter Nuhr, German comedian
Xing: http://contact.cybercraft.de
Twitter: http://twitter.com/bunnyfield
TYPO3 cookbook (2nd edition): http://www.typo3experts.com
_______________________________________________
TYPO3-german mailing list
TYPO3-german at lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


-----BEGIN PGP SIGNATURE-----
Version: PGP Universal 3.0.0 (Build 2881)
Charset: Windows-1252

wpUDBQFM3RZgpp0IwsibV8MBCOVZBACNzdFHR8Xk0D7rqxSKOuWDCCtp0LzGQFFN
+PKtNVinhGRdjR91hLO7XgdYw2JS5oTN+iStDMeyy1AtZEKG3AaU7BnaktEmk1by
GjZvk2uu2Nt4uXVIr61gK+b/m+agpFzcZ1CUvnfFs/6XwEjZbG1npN4X0UDQWhCR
JDOOUIOZHA==
=78pn
-----END PGP SIGNATURE-----


More information about the TYPO3-german mailing list