[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>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>You're crazy (or rather, you will be by =
the end of=20
it...)</FONT></DIV>
<DIV>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Good luck!</FONT></DIV>
<DIV>&nbsp;</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>&nbsp;</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.&nbsp; =
Each=20
  modules PHP code produces an XML page, by running a bunch of queries =
in the=20
  database, and performing some logic.&nbsp; These XML pages are then =
processed=20
  using XSLT, with a model very similar to Acquisition.</FONT></DIV>
  <DIV>&nbsp;</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>&nbsp;</DIV>
  <DIV><FONT face=3DArial size=3D2>(Big reason for doing this =
work:&nbsp; In the=20
  current package, each module is only accessible from a hardcoded URL, =
such as=20
  /links for the Links module, etc.&nbsp; 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>&nbsp;</DIV>
  <DIV><FONT face=3DArial size=3D2>So far, sounds like Zope would be a =
great system=20
  for me.&nbsp; 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>&nbsp;</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>&nbsp;</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.&nbsp; 99% of the =
pages are=20
  dynamic, doing real-time database queries.</FONT></DIV>
  <DIV>&nbsp;</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:&nbsp; 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>&nbsp;&nbsp;&nbsp; =
Content&nbsp;&nbsp;&nbsp; --=20
  actual low-level storage, rarely customized</FONT></DIV>
  <DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; Logic/Object=20
  Representation&nbsp;&nbsp;&nbsp; -- layer used to interact with the =
content,=20
  also rarely customized, although does have configuration =
options</FONT></DIV>
  <DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; XML (page=20
  contents)&nbsp;&nbsp;&nbsp; -- every URL should result in an XML =
document,=20
  containing all the information that will be presented on that =
page.&nbsp;=20
  Written in DTML?</FONT></DIV>
  <DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; XSLT (page=20
  rendering)&nbsp;&nbsp;&nbsp; -- the XML documents must be transformed =
into=20
  HTML/etc.&nbsp; 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.&nbsp; =
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>&nbsp;</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--