0
我已經做了一些閱讀和Google搜索,但我仍然不確定是否有一種本地/內置的方式在SQLAlchemy對象中創建映射屬性,創建一個集合樣屬性爲類似的方案:在SQLAlchemy中創建一個類似映射的屬性
User UserTag
+----+-----------------+ +---------+-----------+
| id | email | | user_id | tag |
+----+-----------------+ +---------+-----------+
| 1 | [email protected] | | 1 | footag |
| 2 | [email protected] | | 1 | something |
+----+-----------------+ | 1 | tagbar |
| 2 | something |
| 2 | 3rdtag |
+---------+-----------+
使每個用戶對象具有User.tags映射屬性,它是(或行爲像)一組字符串 - 例如以下將工作:
>>> user = session.query(User).filter(User.id == 1).one()
>>> print user.tags
set(['tagbar', 'something', 'footag'])
你需要什麼具體的一套?唯一性? O(1)查找? – 2014-10-02 17:39:43
好吧,雖然老實說,查找時間並不重要,因爲我不認爲映射值的數量很大;每個用戶最多可以有10個左右的標籤,而且大部分我都想知道user.tags中的'tagbar'。 映射表具有在(user_id,tag)上定義的唯一鍵,因此在數據庫級別保證了唯一性。對我來說,爲它設置一套或類似的數據結構是很有意義的。 – shevron 2014-10-02 19:34:26