Sodele, mal wieder eine wahnsinnig theoretische frage: wie bau ich Paidmails am besten ein?
Erst mal ein bisschen background info: ich bin grad dabei die gesamten innereien aus VMS rauszureissen und neu zu programmieren, was im endeffekt dann auch in die Drupal module fliessen soll, aber das is momentan noch zukunfts musik. Mein vorgehen bis jetzt ist recht einfach, ich hab' 2 Tabellen einmal die Kampagnen
cid|tan|banner|target|value|reload|wait|adtype|status|sponsorund dann hab' ich die Tabelle die jeden Klick zaehlt:
click_id|cid|uid|ip|hashcash|confirmation_time|status|expirationwas bei forcedbannern einwandfrei funktioniert. Um dann die moeglichen banner zu holen fuer den user benutz ich eine Query wie die hier:
Funktioniert einwandfrei und is erst noch performant (innere Query kann von MySQL gecached werden). Wo das ganze jetzt interessant wird sind die Status codes in den clicks wo jedes Bit eine bedeutung hat (von rechts nach links):
So dann jetzt zum eigentlichen Problem: ich moechte paidmails in das system einbauen, aber moeglichst so dass ich keine weitere Tabelle brauch, und an den Klicks moechte ich auch so wenig wie moeglich drehen.
Sehe ich das richtig dass ich einfach ein neues status bit einbauen kann um den versand der mail zu markieren? Und dann mach ich ein refresh auf confirmation_time und expiration sobald der Benutzer die Bestaetigung antritt?
Oder sieht da grad jemand eine elegantere Methode?
Erst mal ein bisschen background info: ich bin grad dabei die gesamten innereien aus VMS rauszureissen und neu zu programmieren, was im endeffekt dann auch in die Drupal module fliessen soll, aber das is momentan noch zukunfts musik. Mein vorgehen bis jetzt ist recht einfach, ich hab' 2 Tabellen einmal die Kampagnen
PHP:
$fbanner = db_query(sprintf("SELECT *
FROM vms_campaigns
WHERE
cid NOT IN (
SELECT camp_id
FROM vms_campaign_clicks
WHERE ip = %d
AND expiration > UNIX_TIMESTAMP( )
AND status & 0b001 = 1
)
AND status = 'enabled'
ORDER BY value DESC LIMIT %d", ip2long($ip), $usr['max_forced'])) or die(mysql_error());
- 0 - Wurde der click bestaetigt?
- 1 - Wurde der vcheck bestaetigt?
- 2 - Wird vcheck verlangt?
- 3 - Ist der klick archiviert?
So dann jetzt zum eigentlichen Problem: ich moechte paidmails in das system einbauen, aber moeglichst so dass ich keine weitere Tabelle brauch, und an den Klicks moechte ich auch so wenig wie moeglich drehen.
Sehe ich das richtig dass ich einfach ein neues status bit einbauen kann um den versand der mail zu markieren? Und dann mach ich ein refresh auf confirmation_time und expiration sobald der Benutzer die Bestaetigung antritt?
Oder sieht da grad jemand eine elegantere Methode?