1
我有很多列的表 -SQLAlchemy的查询动力场
class Dummy(object):
__tablename__ = 'dummies'
c1 = Column(Integer)
c2 = Column(Integer)
c3 = Column(Integer)
...
cN = Column(Integer)
我可以查询通过单独无需手动指定每个列名的所有列? -
for i in range(1, N):
c_name = 'c%d' % i
dummy = DBSession().query(Dummy).filter_by(???=0).first()
谢谢。
拥有此模式表明您可能没有足够的列。更好地增加一些。严肃地说,这个反模式表明你应该考虑把列表分解成一个新的表格,外键返回到'Dummy'表格,列值和可能的索引,以保持项目的顺序。这也将使查询更容易。 – SingleNegationElimination
谢谢先生,我严重低估了SQLAlchemy的灵活性,应该自己测试getattr。至于db设计,我们只是说在某些情况下这种类似NoSQL的效率可能是合理的。 – Jerry
嗯,我不知道这一点,与只有一个索引的内部连接相比,带有N个查询的N个索引可以减慢速度。即使读取大量访问模式,当你向数据库提出正确的问题时也能很好地工作 – SingleNegationElimination