Hi all,

Just a short question concerning database design in general and 
SQLAlchemy in particular. Let's take the many-to-many example from the 
docs (chapter Data Mapping), where we have a table containing articles 
and one containing some keywords. Now, I understand the normal layout of 
such a many-to-many relationship: Create 2 separate tables (in this case 
"articles " and "keywords") and create the relationship link using a 3rd 
table ("articlekeywords_table").

I was wondering: In this special case, where one end of the relationship 
consists of very "small" objects - essentially, each keyword object is 
not more than a string - why shouldn't I simply use a one-to-many 
structure like this:

articles_table = Table('articles', metadata,
Column('article_id', Integer, primary_key = True),
Column('headline', String(150), key='headline'),
Column('body', TEXT, key='body'),
)

my_keywords_table = Table('article_keywords', metadata,
Column('article_id', Integer, ForeignKey("articles.article_id")),
Column('keyword_string', String(50))
)

I am aware that this is not a db-layout which is normalized like the 
theory says you should, but in this special case where the second end of 
the relationship only consists of single strings... why not? What is the 
advantage of the "classic" many-to-many way of doing it?

Probably, I am missing something, so I would appreciate if someone could 
tell me the flaw in my thinking.

Thanks and Cheers,
Martin




-------------------------------------------------------------------------
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
Sqlalchemy-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users

Reply via email to