I would like to have separate tables.
 
Example that I gave was simplified. In reality each block might have more 
parents and each block might also have more childs. So separate connection 
table will be easier to handle in application (when adding or deleting 
connections between blocks).
 
Zoran

________________________________

From: Petr Jakeš [mailto:petr.ja...@tpc.cz] 
Sent: Thursday, January 08, 2009 11:32 AM
To: Zoran Bošnjak
Cc: sqlobject-discuss
Subject: Re: [SQLObject] FW: table ralations


So what about one table only?
(main idea taken from http://wiki.sqlobject.org/joinexample.html)

sqlhub.processConnection = connectionForURI('sqlite:/:memory:')
class Blocks(SQLObject):
    name=StringCol()    
    parent=ForeignKey("Blocks", default=None)
    child=SingleJoin("Blocks", joinColumn="parent_id")

Blocks.createTable()

blockA = Blocks(name="blockA",)
blockB = Blocks(name="blockB", parent=blockA)
blockC = Blocks(name="blockC", parent=blockB)

for row in Blocks.select():
    print "ROW:", row
    print "PARENT:", row.parent
    print "CHILD:", row.child

Petr
PS: please try to "reply to all" so others in the SQLobject discussion group 
can profit as well


On Thu, Jan 8, 2009 at 10:53 AM, Zoran Bošnjak 
<zoran.bosn...@sloveniacontrol.si> wrote:


        For example:
         
        The schema:
        BlockA  --------> BlockB -------> BlockC
         
        We have 3 blocks and 2 connections. For this case the data in the table 
should be:
         
        Block table:
        id | name
        -----------
        1 | "BlockA"
        2 | "BlockB"
        3 | "BlockC"
         
        Connection table:
        id | src | dst
        ---------------
        1 | 1 | 2                    # BlockA -> BlockB connection
        2 | 2 | 3                    # BlockB -> BlockC connection 
        ...
        3 | 1 | 1         # this is connection from BlockA to itself, but this 
is OK (not shown on the schema above)
        4 | 3 | 4         # wrong entry... it should not be possible to enter 
something like this in a database, block with id 4 is non-existant!
         
        Now, how should I declare classes for Block and Connection table?
        Each entry in a connection table should have id and
        src, which should be a reference to an existing block, and
        dst, which should be again a reference to an existing block
         
        Thank you for your answer.
         
        Zoran
         
________________________________

        
        From: petr.jakes....@gmail.com [mailto:petr.jakes....@gmail.com] On 
Behalf Of Petr Jakeš
        
        Sent: Thursday, January 08, 2009 8:39 AM
        To: Zoran Bošnjak
        Subject: Re: FW: [SQLObject] table ralations
        
        
        Zoran, 
        I do not really understand, what you are trying to do. Can you send me 
a short example of data for both tables?
        Petr
        
        
        On Thu, Jan 8, 2009 at 8:36 AM, Zoran Bošnjak 
<zoran.bosn...@sloveniacontrol.si> wrote:
        

                Petr,
                do you understand my question. Can you help me solve it?
                 
                regards,
                Zoran

________________________________

                From: Zoran Bošnjak 
                Sent: Wednesday, January 07, 2009 10:17 AM
                To: 'petr.ja...@tpc.cz'
                Cc: sqlobject-discuss@lists.sourceforge.net
                Subject: RE: [SQLObject] table ralations
                
                
                Sorry for the confusion...
                 
                I don't want to have a "Connection" in a database unless the 
connection is between existing "Blocks".
                 
                Please correct my class definition for Block and Connection so, 
that it won't be even possible to create such connection.
                 
                Zoran
                 

________________________________

                From: petr.jakes....@gmail.com 
[mailto:petr.jakes....@gmail.com] On Behalf Of Petr Jakeš
                Sent: Wednesday, January 07, 2009 9:51 AM
                To: Zoran Bošnjak
                Cc: sqlobject-discuss@lists.sourceforge.net
                Subject: Re: [SQLObject] table ralations
                
                

                        # create dumb connection
                        # it should not work, because there is no blocks!!!
                        Connection(src=150, dst=250)


                Why do you think this should not work? AFIK above mentioned 
just insert one row (record) in your table Connection. Exactly as the SQL below 
describes.
                


                        INSERT INTO "connection" VALUES(1,150,250); COMMIT;
                        sqlite>


                Petr 
                




------------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It is the best place to buy or sell services for
just about anything Open Source.
http://p.sf.net/sfu/Xq1LFB
_______________________________________________
sqlobject-discuss mailing list
sqlobject-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss

Reply via email to