2010-02-10 70 views
0

假設我有一個表Articles,它具有字段article_id,content,並且它包含一篇文章,其ID爲1通過中間表的SQLAlchemy外鍵關係

我也有一個表Categories,其具有字段category_id(主鍵),category_name,它包含一個類別ID爲10

現在假設我有一個表ArticleProperties,它將屬性添加到Articles。此表的字段爲article_id,property_nameproperty_value

假設我想通過ArticleProperties表創建從CategoriesArticles的映射。

我通過在ArticleProperties表中插入以下值來完成此操作:(article_id = 1,property_name =「category」,property_value = 10)。

有沒有辦法在SQLAlchemy的表達,在表ArticlePropertiesproperty_name「類別」行實際上是表Articles的表Categories外鍵?

這是一個複雜的問題,我自己也沒有找到答案。

任何幫助表示讚賞!

謝謝,Boda Cydo。

+0

任何人都可以回答?請??? – bodacydo 2010-02-12 00:02:36

+0

喬治,我有數據插入它。在編輯之後,沒有人知道article_id = 1是我在表中唯一的文章,而property_value = 10意味着我只有category_id = 10的一個類別。 – bodacydo 2010-02-12 00:07:22

+0

爲什麼你非常想將類別放入ArticleProperties的大(和通用)列表中? – van 2010-02-19 13:36:11

回答

1

假設我理解你的問題是正確的,那麼不,你不能建模你的關係。 (這會幫助你描述你想要的結果,而不是你認爲的解決方案)

我想你可能想要的是一個名爲ArticleCategories的多對多映射表,它由2個int列,ArticleID和CategoryID組成各自的FKs)

+0

一篇文章可以有很多屬性 - 類別,最後編輯文章的人員,文章創建的月亮階段或任何您可以想象的內容。 我無法將它建模爲ArticleCategories或ArticleMoonPhase,因爲有無數的屬性(我有時甚至不知道這些名稱 - 創建項目的用戶會爲其添加屬性)。 – bodacydo 2010-02-12 00:35:13

+0

最終的結果是,當我做了像Article.property_name之類的東西,並讓sqlalchemy自動找出這個值。 在我的簡單示例中.property_name是.category,sqlalchemy會知道.category是Categories表中的外鍵,而不是返回id = 10,它會知道.category是Category上的外鍵並返回一個完整的Category對象。 – bodacydo 2010-02-12 00:38:52

+0

我希望我能更清楚地解釋一下。 – bodacydo 2010-02-12 00:40:20