簡體   English   中英

SQLAlchemy 多態多對多關系

[英]SQLAlchemy Polymorphic Many-to-many Relationship

SQLAlchemy 是否提供了一種方便的模式來使用單個表將多個類與另一個 class 關聯? 例如,通過使用帶有“標簽” class的多態多對多關系使“帖子”和“視頻”類可標記?

我熟悉Laravel PHP框架中多對多多態關系的實現。 此實現使用連接表中的type字段來區分“Post”和“Video”類。

例子:

posts
    id - integer
    name - string

videos
    id - integer
    name - string

tags
    id - integer
    name - string

taggables
    tag_id - integer
    taggable_id - integer
    taggable_type - string

對於 SQLAlchemy,我找不到類似的東西。 據我了解,SQLalchemy 中的多態性僅限於 class inheritance 的模式。 同樣, 關聯 object 模式似乎只允許 2 個類之間的關系。

是否推薦像我上面的示例這樣的多態模式? 或者為每個 class 定義一個帶有“標簽”的多對多關系通常更好嗎?

您完全可以使用 sqlalchemy 來實現這一點。

請閱讀文檔的示例:通用關聯部分以了解各種選項。

您正在尋找的那個顯示在discriminator_on_association代碼片段中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM