[Mailman3-dev] Problem with the schema

Barry Warsaw barry at python.org
Wed Mar 30 05:33:14 CEST 2005


I was working on a method to delete mailing lists and I realized that
our schema as currently designed doesn't support it.

Think about Rosters.  In order to support composition of mailing lists,
we let Rosters be shared.  So for example, it's quite easy in our
current schema for List-A to have its membership in one Roster, List-B
to have its membership in a second Roster, and List-C to be composed of
Roster-A and Roster-B.

But what happens if List-B gets deleted?  Do we delete Roster-B?  Do we
leave it hanging around because List-C refers to it?  Also, can we know
how many mailing lists are referring to a particular Roster?  Remember
too that we can re-use Rosters as the list of owners or moderators.

Similar issues arise through the re-use of LanguageTextCollections and
MessageCollections.  Essentially, we'd need to add reference counting to
these tables (or implement the equivalent through complicated queries).
The question is whether it makes sense to "delete a mailing list",
especially when we have to support the use case of deleting a list but
keeping its archives around for posterity.  So what happens to its
MessageCollection pointed to by the 'archives' column?

Maybe we should just be marking a MailingList as disabled.  If all we
care about is a row in the DBMailingList table (yes, I've renamed them
;), then maybe it's cheap enough to keep the row around and just set a
flag saying whether the list is active or not.

Anyway, I'm not sure what we should do, so suggestions are welcome!
-Barry

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 307 bytes
Desc: This is a digitally signed message part
Url : http://mail.python.org/pipermail/mailman3-dev/attachments/20050329/9cdeb425/attachment-0001.pgp


More information about the Mailman3-Dev mailing list