<p>所以据我所知,你被困在两张桌子上。一个是整数列,一个是字符串列</p>
<pre><code>Class Marker
_marker_key_ primary_key
# _ = Integer ## This can be ignored as its unnecessary.
</code></pre>
<p>另一个有一个</p>
^{pr2}$
<p>正如我所读到的,您希望类标记具有许多可以轻松操作或调用的类标记类型字符串。不过,我不确定这是否是你想要的。在</p>
<p>如果是这样,那么假设您控制了数据库的种子设定,就可以实现这一点。可以在每个名称的开头构建一个指向标记主键的标志。在</p>
<p>示例:MarkerType.name=10324_橙色</p>
<p>我不熟悉在没有sessions的情况下使用SQLAlchemy,也不太想做研究,所以我只想写下我的答案,假设你使用的是SQLAlchemy sessions,这样你就可以了解这个概念并根据需要进行调整。在</p>
<pre><code>### !!! ASSUME 'create_session' method exists that
#### creates a sqlalchemy session instance
Class Marker:
# ... initialize and such
# ... then add these helper methods
## Get all properties linked to this primary table row
def marker_types():
return db.query(MarkerType).
filter(MarkerType.name.like(str(self._marker_key_)+"_%")).all()
## Get specific property linked to this primary table row
def marker_type(marker_type_name):
db = create_session()
marker_type_list = db.query(MarkerType).
filter(MarkerType.name.like(str(self._marker_key_)+"_%")
AND marker_type_name == MarkerType.name ).first()
db.close()
return marker_type_list
def update_marker_type(old_val, new_val)
db = create_session()
updated_marker_type = marker_type(old_val)
updated_marker_type.name = str(self._marker_key_)+" "+new_val
db.close()
return True
def create_marker_type(val)
marker_type = MarkerType(name = str(self._marker_key_)+" "+val)
db = create_session()
db.add(marker_type)
db.commit()
db.close()
return marker_type._marker_type_key
</code></pre>
<p>从这里可以向名称字符串添加其他标志。比如属性类型。在</p>
<pre><code>Marker.id = 193
MarkerType.id = 1
MarkerType.name = "193_color_Black"
MarkerType.id = 2
MarkerType.name = "193_style_Fine"
</code></pre>
<p>这个附加的标志可以让您搜索链接到特定行的常规属性特定名称,它的可用性大大提高,尽管稍微复杂一些。实际上取决于你的用例。在</p>