[Zope] Pre-newbie question: how to implement this app?

Don Dwiggins dwig@competitive-knowledge.com
08 Nov 2000 09:28:14 -0800


I'm calling this a "pre-newbie" question because I'm not running Zope yet,
although I've been looking into it for some time, and have recently started
reading in earnest.  

I have an application that I think would be a good initial app for getting
into Zope, and I'd like some advice on how to go about it.  It's a basic
task list management system for a small group of developers, and it has the
following characteristics:
- There are two main entities: Task and Person.  The relationship between
  them is many-to-many (a person may be assigned to multiple tasks, a task
  may have multiple people assigned).
- There will be a relatively small number of tasks and people.
- Tasks will be added, removed, and modified frequently; people less so.
- When a task or person is removed, integrity should be maintained by
  removing assignments involving the removed entity.
- I'll start with a couple of basic views that let people see the tasks,
  their status, assignments, priorities, etc.  Later, there'll probably be
  more.
- I want to be able to add attributes to both entities at will.
- Initially, I'll be maintaining the list, but I'd like to add the
  capability for people to sign up for tasks, and to change the status of
  tasks they're assigned to.
- Security isn't an issue here, but avoiding blunders is.

Questions:
- What are the pros and cons of storing the entities in the ZODB vs. a
  relational DB?
- How best to represent the many-to-many relationship?  (Usually, in a
  relational DB, I'd use a relationship table such as PersonTaskAssignment.)
  In particular, how does Zope handle references between independent
  objects?
- What Zope products should I consider using to aid in the implementation?
- Is there already an app like this that I could adapt?

Thanks for any good words you can offer,

Don Dwiggins
Competitive Knowledge, Inc.