【问题标题】:How do I insert multiple values into a single column using sqlite?如何使用 sqlite 将多个值插入单个列?
【发布时间】:2010-10-31 19:01:47
【问题描述】:

我想在我的表中有一列可以存储可变数量的 int 值。做这个的最好方式是什么?我希望能够根据这些整数进行选择,这样 csv 列表就不起作用了。

基本上,我的表中有一堆可以属于多个不同类别的行。我想将类别 ID 存储在我的表中,并能够根据它们所属的类别选择行。我相信这被称为多对多关系。我正在使用 sqlite。

【问题讨论】:

    标签: sql database-design sqlite


    【解决方案1】:

    您将需要一个中间表,其中每一行是一个项目和一个类别。

    ItemID 类别 111 1 111 2 222 1 222 2 222 3 333 3

    要根据一个类别(比如类别 2)选择所有项目,您可以执行以下查询

    SELECT * FROM Items AS I INNER JOIN ItemsInCategories AS N ON N.ItemID = I.ItemID WHERE N.Category = 2
    

    这会返回

    物品编号 111 222

    【讨论】:

      【解决方案2】:

      应该使用映射表来完成多对多关系。不是通过破解多值列类型

      例如这个 BlogPost 类别示例:

      Blog
        Id
        Title
        Content
      
      Category
        Id
        Title
      
      Blog_Category
        BlogId
        CategoryId
      

      这意味着当 ID 为 12 的 BlogPost 属于类别 3,5 和 10 时,Blog_Category 包含以下行:

      12, 3
      12, 5
      12, 10
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-14
        • 1970-01-01
        • 2011-06-14
        • 2021-07-18
        • 1970-01-01
        • 2017-03-18
        • 1970-01-01
        相关资源
        最近更新 更多