Hello,

Hey, thanks alot.

I'm going to print this out and give it a thorough read.

I'm sure your correct, as I have minimal experiance in this. I take a look
at the POC as well.

Thanks!

- Ben

Ben Sgro, Chief Engineer
ProjectSkyLine - Defining New Horizons

----- Original Message ----- From: "Dan Cech" <[EMAIL PROTECTED]>
To: "NYPHP Talk" <talk@lists.nyphp.org>
Sent: Thursday, August 16, 2007 10:53 AM
Subject: Re: [nyphp-talk] XML Manipulation


Ben Sgro (ProjectSkyLine) wrote:
Hello all,

After the XML vs SQL conversation, I started to rethink a product I'm working on. I had been having a lot of trouble modeling the data into SQL. It was starting to
look very complicated.

So, I decided I would try to store it in XML. The data I am storing is messages w/in a thread, timestamp, body and subject. On the SQL side, we create a table that has the user id,
and a row per message/thread which contains a path to the xml file.

The reason XML seemed better is that I store the data top down and that is the true order of the thread. Messages within the thread can come from email or html page response, so its important to insert items into the thread via the timestamp. Using XML just made it
simpler for me to wrap my head around, than trying to model it in SQL.

This sounds awfully messy to me, and will most likely be very slow.

I'm all for XML, but this kind of thing is what databases are meant for.

All you need are 2 tables, one for each thread and one for messages.

threads:

thread_id,subject,ts,activity

messages:

msg_id,thread_id,user_id,ts,subject,body

SQL:

SELECT * FROM threads ORDER BY activity DESC

SELECT * FROM messages WHERE thread_id=? ORDER BY ts ASC

Couldn't be easier, if you want to store extra data about each thread or
message just add fields to the relevant table.

I just wrapped up a complete rewrite of a system that used one table for
threads and messages, and I would strongly suggest advise against it.

If you're looking for ideas, here is a proof-of-concept I put together
back in 2004 for a system using a modified preorder traversal tree for
threaded messages.

http://clew.phpwerx.net/

Dan

_______________________________________________
New York PHP Community Talk Mailing List
http://lists.nyphp.org/mailman/listinfo/talk

NYPHPCon 2006 Presentations Online
http://www.nyphpcon.com

Show Your Participation in New York PHP
http://www.nyphp.org/show_participation.php

_______________________________________________
New York PHP Community Talk Mailing List
http://lists.nyphp.org/mailman/listinfo/talk

NYPHPCon 2006 Presentations Online
http://www.nyphpcon.com

Show Your Participation in New York PHP
http://www.nyphp.org/show_participation.php

Reply via email to