-joe
On 10/16/06, gabor <[EMAIL PROTECTED]> wrote:
hi,
i'd like to know your opinion about a decision i have to make a lot of
times while developing with django...
an example:
let's have a system where sometimes we have to send out a LOT of emails.
so we decide to have a periodically running process (cronjob, probably),
that will check whether there is some mail-sending to do, and if yes,
will send it out.
let's have the following model:
======================================================
class Task(Model):
begin = DateTime(blank=True,null=True)
end = DateTime(blank=True,null=True)
from_addr = EmailField()
subject = CharField(maxlength=100)
body = TextField()
#these are the important fields
all_recipients = IntegerField()
remaining_recipients = IntegerField()
error_count = IntegerField()
class Recipient(Model):
addr = EmailField()
task = ForeignKey(Task)
done = BooleanField(default=False)
error = CharField(maxlength=100,blank=True)
(if the error-field is an empty string, that means that there were no
errors)
======================================================
i hope the models are understandable... the mails are sent with the same
from_addr, subject and body, but to a lot of different recipients.
now please look at the last 3 fields in the Task model. they are clearly
redundant. they can be easily calculated from the Recipient objects.
so theoretically we could drop those fields (we could even create
read-only attributes in the Task-model, which would query those values
in the db)
now imagine a webpage, where i want to list the status of all the Tasks...
one line for every task, and i'd like to show all those numbers for it.
and i do not want to do 3 separate db-queries for every Task object (to
calculate those "missing-because-redundant" fields)
with custom SQL, i could do it in a constant-number of queries, but not
with django querysets.
so, i have 2 possibilities:
1. i remove those 3 fields from the Task model (because they are
redundant), and use a few custom sql-queries in the task-list-view
or
2. i keep those 3 fields, i ignore that they are redundant, and
everything works nicely with querysets.
which way do you chose-usually/recommend?
p.s: i hope you understand that this is not a critique of django. this
would happen with any non-native-sql db-api.
thanks,
gabor
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/django-users
-~----------~----~----~----~------~----~------~--~---