[Zope] Where to store my data?
Steve Smith
ssmith6@bigpond.net.au
Tue, 14 Nov 2000 09:26:17 +1100
This is a multi-part message in MIME format.
------=_NextPart_000_000D_01C04E1C.F131D6C0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Randall,
You're crazy (or rather, you will be by the end of it...)
Seriously though, I've spent 3 months developing a site using Zope, and =
just now is it starting to feel a bit more natural to use. Probably not =
knowing Python was a handicap.=20
I chose the RDBMS approach to store posts, etc as I was familiar with =
SQL. I still don't think you can beat the search capabilities of a =
properly designed database, and Zope does make SQL integration =
straightforward.
Zope has all the right characteristics for what you want to do, but it =
may send you 'round the twist making it happen!
Good luck!
Steve
----- Original Message -----=20
From: Randall Kern=20
To: zope@zope.org=20
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
------=_NextPart_000_000D_01C04E1C.F131D6C0
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=3D"text/html; charset=3Diso-8859-1" =
http-equiv=3DContent-Type>
<META content=3D"MSHTML 5.00.2920.0" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>Randall,</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>You're crazy (or rather, you will be by =
the end of=20
it...)</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>Seriously though, I've spent 3 months =
developing a=20
site using Zope, and just now is it starting to feel a bit more natural =
to use.=20
Probably not knowing Python was a handicap. </FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>I chose the RDBMS approach to store =
posts, etc as I=20
was familiar with SQL. I still don't think you can beat the search =
capabilities=20
of a properly designed database, and Zope does make SQL integration=20
straightforward.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>Zope has all the right characteristics =
for what you=20
want to do, but it may send you 'round the twist making it =
happen!</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>Good luck!</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>Steve</FONT></DIV>
<BLOCKQUOTE=20
style=3D"BORDER-LEFT: #000000 2px solid; MARGIN-LEFT: 5px; MARGIN-RIGHT: =
0px; PADDING-LEFT: 5px; PADDING-RIGHT: 0px">
<DIV style=3D"FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV=20
style=3D"BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: =
black"><B>From:</B>=20
<A href=3D"mailto:randy@teamkern.net" =
title=3Drandy@teamkern.net>Randall Kern</A>=20
</DIV>
<DIV style=3D"FONT: 10pt arial"><B>To:</B> <A =
href=3D"mailto:zope@zope.org"=20
title=3Dzope@zope.org>zope@zope.org</A> </DIV>
<DIV style=3D"FONT: 10pt arial"><B>Sent:</B> Tuesday, November 14, =
2000 7:00=20
AM</DIV>
<DIV style=3D"FONT: 10pt arial"><B>Subject:</B> [Zope] Where to store =
my=20
data?</DIV>
<DIV><BR></DIV>
<DIV><FONT face=3DArial size=3D2>I've just started playing with Zope =
again, and=20
this time I'm going to spend enough time with it to actually decide if =
it's=20
crazy or I am :)</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>My project currently consists of a =
bunch of=20
community "modules" written in PHP using MySQL as a data store. =
Each=20
modules PHP code produces an XML page, by running a bunch of queries =
in the=20
database, and performing some logic. These XML pages are then =
processed=20
using XSLT, with a model very similar to Acquisition.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>I'm getting very tired of the poor =
language=20
design inherent in PHP, and wanted to start using Python =
again.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>(Big reason for doing this =
work: In the=20
current package, each module is only accessible from a hardcoded URL, =
such as=20
/links for the Links module, etc. Many of my customers want to =
change=20
the layout of their site, and in fact maybe have two Links modules,=20
etc.)</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>So far, sounds like Zope would be a =
great system=20
for me. It would give my customers a good platform to customize =
their=20
sites, and give me a good platform to build my modules =
with.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>Now, short of just doing it and then =
discovering=20
what I did wrong, I'm hoping to get some advice from the Zope =
community on how=20
to structure this system.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>This is a fairly large system, I host =
about 10=20
customers per box, serving about 4MM page views. 99% of the =
pages are=20
dynamic, doing real-time database queries.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>Some of my first =
questions:</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>-Is Zope a good choice for this kind =
of=20
project?</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>-Which is better: Store my =
content (Forum=20
posts, Links, etc) in ZODB, or a MySQL database?</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>-Build my Product (right term?) in =
DTML/ZClasses=20
(seems easier for my users to customize?) or build it in =
Python?</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>-Can I (easily) build this system in =
4=20
layers:</FONT></DIV>
<DIV><FONT face=3DArial size=3D2> =
Content --=20
actual low-level storage, rarely customized</FONT></DIV>
<DIV><FONT face=3DArial size=3D2> Logic/Object=20
Representation -- layer used to interact with the =
content,=20
also rarely customized, although does have configuration =
options</FONT></DIV>
<DIV><FONT face=3DArial size=3D2> XML (page=20
contents) -- every URL should result in an XML =
document,=20
containing all the information that will be presented on that =
page. =20
Written in DTML?</FONT></DIV>
<DIV><FONT face=3DArial size=3D2> XSLT (page=20
rendering) -- the XML documents must be transformed =
into=20
HTML/etc. These transformations, like the page contents should =
be=20
inherited; excuse me, acquired.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>-Simple things should be simple, =
Complex things=20
should be possible. -- My users should be able to plop a Links module =
into=20
their site, edit the Properties for that Object, and it works. =
If they=20
want to change the way Links are categorized, they should be able to, =
although=20
it'll take a while longer :)</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>Thanks for your Zen,</FONT></DIV>
<DIV><FONT face=3DArial =
size=3D2>-Randy</FONT></DIV></BLOCKQUOTE></BODY></HTML>
------=_NextPart_000_000D_01C04E1C.F131D6C0--