----- Original Message -----
Sent: Tuesday, November 14, 2000 7:00
AM
Subject: [Zope] Where to store my
data?
I've just started playing with Zope again, and
this time I'm going to spend enough time with it to actually decide if it's
crazy or I am :)
My project currently consists of a bunch of
community "modules" written in PHP using MySQL as a data store. Each
modules PHP code produces an XML page, by running a bunch of queries in the
database, and performing some logic. These XML pages are then processed
using XSLT, with a model very similar to Acquisition.
I'm getting very tired of the poor language
design inherent in PHP, and wanted to start using Python again.
(Big reason for doing this work: In the
current package, each module is only accessible from a hardcoded URL, such as
/links for the Links module, etc. Many of my customers want to change
the layout of their site, and in fact maybe have two Links modules,
etc.)
So far, sounds like Zope would be a great system
for me. It would give my customers a good platform to customize their
sites, and give me a good platform to build my modules with.
Now, short of just doing it and then discovering
what I did wrong, I'm hoping to get some advice from the Zope community on how
to structure this system.
This is a fairly large system, I host about 10
customers per box, serving about 4MM page views. 99% of the pages are
dynamic, doing real-time database queries.
Some of my first questions:
-Is Zope a good choice for this kind of
project?
-Which is better: Store my content (Forum
posts, Links, etc) in ZODB, or a MySQL database?
-Build my Product (right term?) in DTML/ZClasses
(seems easier for my users to customize?) or build it in Python?
-Can I (easily) build this system in 4
layers:
Content --
actual low-level storage, rarely customized
Logic/Object
Representation -- layer used to interact with the content,
also rarely customized, although does have configuration options
XML (page
contents) -- every URL should result in an XML document,
containing all the information that will be presented on that page.
Written in DTML?
XSLT (page
rendering) -- the XML documents must be transformed into
HTML/etc. These transformations, like the page contents should be
inherited; excuse me, acquired.
-Simple things should be simple, Complex things
should be possible. -- My users should be able to plop a Links module into
their site, edit the Properties for that Object, and it works. If they
want to change the way Links are categorized, they should be able to, although
it'll take a while longer :)
Thanks for your Zen,
-Randy