SQLite - 存储多个值

Ily*_*ski 3 sqlite

如何在SQLite数据库中存储和检索同一列的同一行的多个值?

即我有一个产品列,另一列是商店,我放入所有商店,在那里可以得到这个产品:

Product: iLamp;
Stores: River's; McWay; Lonnie's; ...
Run Code Online (Sandbox Code Playgroud)

我该如何实现呢?

先感谢您.

pax*_*blo 7

如果你很聪明,你就不会这样做.因为到了确定哪些商店库存商品的时候,您的查询将会被隐藏变形.当他们尝试插入和删除商店时,您的库存控制应用程序也是如此.你最终会得到的就是我喜欢称之为SQL体操,花费越来越多的时间尝试以最离奇的方式进行SQL,仅仅是因为设计选择不好.

说真的,将这些存储在数据库中的不同行中,就像Codd想要的那样.

将多行组合成单个分号分隔的字符串比将字符串分解为元素要容易得多(并且在DBMS grunt方面更快).

像这样的模式就足够了:

Products:
    ProdCode integer primary key
    ProdDesc varchar(50)
Stores:
    StoreCode integer primary key
    StoreDesc varchar(50)
StockLevels:
    StoreCode integer \
    ProdCode  integer / primary key
    Count     integer
Run Code Online (Sandbox Code Playgroud)


nst*_*ehr 5

就像其他人提到的那样,您可以将其存储为逗号分隔的字符串,然后将其放入您的数据库中,但就像ocdecio提到的那样,您现在拥有表格的方式是一种糟糕的设计。你应该考虑做一些事情,比如添加另一个表,比如一个PRODUCT_TO_STORE有两列的表,一个列有产品的键,另一列有商店的键。然后是产品和商店之间的关系,有助于规范您的数据,这在大多数情况下是一件好事。然后,当您需要查找产品所在的所有商店时,您只需对该PRODUCT_TO_STORE表执行查询即可。