Hi All,
Summary:
1. Seeking help on how to relate a table to itself (using an association
table).
2. Facing issue while using more than one foreign keys from table1 pointing
to table2.
Elaborated:
Consider the requirement - A person can have multiple persons in his contact
list, and a person can be present in the contact list of multiple persons.
The postgres schema below clears the scenario:
CREATE TABLE person (
id SERIAL,
first_name VARCHAR(30) NOT NULL,
last_name VARCHAR(30) NOT NULL,
PRIMARY KEY(id)
);
CREATE TABLE contact (
person_id INTEGER NOT NULL REFERENCES person,
contact_id INTEGER NOT NULL REFERENCES person,
favorite BOOLEAN NOT NULL DEFAULT FALSE,
PRIMARY KEY(person_id, contact_id)
);
Being new to SQLAlchemy, ActiveMapper and Python, I could not conclude the
code pattern for this for ActiveMapper. Kindly help.
Forgeting about the many_to_many relationship, I then, for the sake of
trying, viewed the scenario as a one_to_many relationship between person and
contact object. That is "a person has many contacts." I got some strange
results. Presenting the code below:
#Trying to have 'Jonathan LaCour' in 'Sanjay Patel's contact list:
from sqlalchemy.ext.activemapper import *
metadata.connect('postgres://username:[EMAIL PROTECTED]:5432/mydb')
class Person(ActiveMapper):
class mapping:
__autoload__ = True
contacts = one_to_many('Contact', colname='person_id',
backref='contact_of')
class Contact(ActiveMapper):
class mapping:
__autoload__ = True
jonathan = Person(first_name = "Jonathan", last_name = "LaCour");
objectstore.flush()
print jonathan.id # 1
sanjay = Person(first_name = "Sanjay", last_name = "Patel",
contacts = [Contact(contact_id=jonathan.id, favorite=True)])
objectstore.flush()
print sanjay.id # 2
print sanjay.contacts[0].person_id # 2
print sanjay.contacts[0].contact_id # 2 (it should be 1!)
Is it a bug, or I am missing something?
Thanks
Sanjay
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Sqlalchemy-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users