[Zope] MySQL and Zope struggles
dale.w.lance@mail.sprint.com
dale.w.lance@mail.sprint.com
Mon, 16 Oct 2000 11:40:29 -0500
--openmail-part-2b1fc156-00000001
Content-Type: text/plain; charset=US-ASCII
Content-Disposition: inline
;Creation-Date="Mon, 16 Oct 2000 11:40:29 -0500"
Content-Transfer-Encoding: 7bit
Or you could renormalize your data to have:
--------- -----------
| Artist | | Note |
|---------|-------|-----------|
| id | | id |
--------- | artist_id |
| note_str |
-----------
you now have a list of notes by artist_id.
You typically won't have a screen that doesn't have an Artist context
to be adding a note to. (or to remove all notes from).
Of course this means more work to migrate :-(
And I don't know all possible scenarios for which you would
need the structure you gave, but it is another way around this.
It probably doesn't solve real complex scenarios either.
JAT
Dale
-----Original Message-----
From: administrator [mailto:administrator@consotec.de]
Sent: Monday, October 16, 2000 6:11 AM
To: zope
Cc: administrator
Subject: Re: [Zope] MySQL and Zope struggles
I don't know if the following link can solve your problem,
but maybe it gives you an idea:
http://www.zope.org/Members/Roug/new_record_with_subrecords
(How-To: Creating a new record with subrecords in MySQL)
Arno
> I'm struggling to migrate an application from Zope/PostgreSQL to Zope
MySQL
> (Why ? - because I've got a kind offer of free hosting if I use
MySQL).
>
> MySQL offers a limited set of features and is missing, among other
things,
> the ability to use subqueries - so for example in PostgreSQL you can
say
>
> update note set notes =<dtml-sqlvar notes type=string>
> where note_id =
> (select note_id from artist where <dtml-sqltest artist_id
type=int>)
>
> and in MySQL you can't.
>
> If you were working in a traditional programming environment you could
> overcome this by splitting the above into two parts - a select to
retrieve
> the value of note_id from the artist table followed by an update of
the
> note table using the returned value of note-id.
>
> For example
>
> select note-id into note-id-var from artist where artist-id = 23;
> update note set notes = 'asdasda' where note-id = note-id-var;
>
> The problem is that in Zope I believe you can't use a returned value
within
> an SQL Method, so the above code would fail. The only way I can see
to do
> the above is to have two separate SQL Methods, one for the select,
> returning the note-id-var and another for the update. This is very
clumsy.
>
> I was wondering if anyone could tell me if there was a better way.
>
> Many thanks
>
>
> Richard
>
> Richard Moon
> richard@dcs.co.uk
>
>
>
> _______________________________________________
> Zope maillist - Zope@zope.org
> http://lists.zope.org/mailman/listinfo/zope
> ** No cross posts or HTML encoding! **
> (Related lists -
> http://lists.zope.org/mailman/listinfo/zope-announce
> http://lists.zope.org/mailman/listinfo/zope-dev )
>
>
> To: zope@zope.org
--openmail-part-2b1fc156-00000001--