RE: [PHP] Question about SQL and Graph nodel trees
| From: | Tommy Pham | Date: | Thu, 22 Jul 2010 10:29:43 +0000 |
| Subject: | RE: [PHP] Question about SQL and Graph nodel trees | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-307085@lists.php.net to get a copy of this message | ||
> -----Original Message-----
> From: Tim Gallagher [mailto:tgallagher@danati.com]
> Sent: Wednesday, July 21, 2010 12:49 PM
> To: Andrew Ballard
> Cc: php-general@lists.php.net
> Subject: RE: [PHP] Question about SQL and Graph nodel trees
>
> Thank you for the informaiton. I did see that code but it looks like it is
> formatted for MSSQL and was unable to get it to work for Mysql.
>
> Tim
>
@Tim, You'll have to migrate the stored procedures (SP) from MSSQL to MySQL (aka stored
programs). Each DBMS have their own way of implementing the SP.
http://dev.mysql.com/doc/refman/5.1/en/stored-programs-views.html
@Andrew, interesting link! Thanks!
Regards,
Tommy
> ________________________________________
> From: Andrew Ballard [aballard@gmail.com]
> Sent: Wednesday, July 21, 2010 11:40 AM
> To: Tim Gallagher
> Cc: php-general@lists.php.net
> Subject: Re: [PHP] Question about SQL and Graph nodel trees
>
> On Wed, Jul 21, 2010 at 11:04 AM, Tim Gallagher <tgallagher@danati.com>
> wrote:
> > I cannot be the only one that is having this problem, what are you using for
> DAG (Direct Acrylic Graph)? I need to have a mesh node edge graph and am
> having trouble with this? I see that Neo4j has a rest server and I can do this
> in Java but I want to do it in PHP with a MYSQL or postgresql. If you are doing
> something like this, can you please tell me how you are doing this. I can do a
> relationship with a parent child or a nested tree, but I need to do a DAG.
> >
> > Thanks for the help,
> > timgerr
> >
>
> A basic approach would be to use two tables - one to store the nodes and
> second table to store the edges between the nodes. As far as traversing the
> graph, the best approach I have seen expands this a bit to store the full
> transitive closure of the graph, rather than just the direct edges:
>
>
> http://www.codeproject.com/KB/database/Modeling_DAGs_on_SQL_DBs.a
> spx
>
> It is written for SQL Server, but the idea works OK (and I successfully tested it
> once) in MySQL. (I imagine the same would be true for PostgreSQL.)
>
> The idea is to store the transitive closure (every possible path) of the entire
> graph. For instance, if you have a basic graph
>
> A -> B -> C -> D
>
> it stores these paths:
>
> A -> B
> B -> C
> C -> D
> A -> C
> B -> D
> A -> D
>
> The obvious downside is that edge table can get incredibly large depending
> on the nature of the graph you are modeling. (The article provides much
> more detail.) I did, however, import a good chunk of an Active Directory tree
> (just users and groups, not the full list of
> attributes) into this pattern just to test the concept, and I found that in that
> case the size of the transitive closure table did not get out of hand.
>
>
> Andrew
> --
> PHP General Mailing List (http://www.php.net/) To unsubscribe, visit:
> http://www.php.net/unsub.php