哪种列类型支持sqlalchemy中的列表?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了哪种列类型支持sqlalchemy中的列表?相关的知识,希望对你有一定的参考价值。

我目前正在为太阳活动区域建立一个数据库,其中一个列应该得到区域编号,目前我已按以下方式声明:

noaa_number = sql.Column(sql.Integer, nullable=True)

但是,由于可以在区域发展时分配新的数字,哪种列类型更好地支持列表以保留给定区域的所有数字?所以不要像以下那样输入:

noaa_number = 12443

我可以将结果存储为:

#a simple entry
noaa_number = [12443]
#or multiple results
noaa_number = [12444,12445]

列表中的这些元素将是整数。

我正在检查documentation,我最好的想法就是把这个列放在一个字符串中并解析出所有数字。虽然这样可以正常工作但我想知道是否有更好更合适的方法。

答案

在某些情况下,您可以使用array column。存储非常具体的数据真的不错。例:

class Example(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    my_array = db.Column(db.ARRAY(db.Integer())

# You can easily find records:
# Example.my_array.contains([1, 2, 3]).all()
# You can use text items of array
# db.Column(db.ARRAY(db.Text())

您还可以使用CompositeArray(sqlalchemy_utils)将自定义数据库类型用作数组项。例:

# let's imagine that we have some meta history
history = db.Column(
        CompositeArray(
            CompositeType(
                'history',
                [
                    db.Column('message', db.Text),
                ]
             )
        )
# example of history type:
CREATE TYPE history AS (
   message text
);

注意!不确定sqlite但使用postgres应该可以正常工作。

希望这可以帮助。

以上是关于哪种列类型支持sqlalchemy中的列表?的主要内容,如果未能解决你的问题,请参考以下文章

MySql - 在多列中存储多个boolean时使用哪种列类型?

使用连接表选择组 concat 或将数据移动到一种列文本数据类型

使用 PySpark 读取 CSV 时是不是可以仅覆盖一种列类型?

这是哪种类型的列表,我如何访问 tokenValue?

Redis都有哪些数据类型

OData Edm.GeographyPoint 在 SQL Server 数据库中指的是啥类型