亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪(fǎng)問(wèn)板塊 發(fā)新帖
查看: 7245 | 回復(fù): 7
打印 上一主題 下一主題

sqlite中如何存儲(chǔ)一個(gè)列表? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2008-03-17 17:26 |只看該作者 |倒序?yàn)g覽
hi,
目前我需要用Sqlite存儲(chǔ)一些數(shù)據(jù)。比如有以下一張表:table1

Name    ID     Actions
-----------------------------
steave   1      delete,edit, add
jacky      2     delete,add
.....


其中Actions這一欄是一個(gè)列表,每個(gè)記錄有不同的actions。請(qǐng)問(wèn)如何建立該表?使得我使用如下命令可以返回一個(gè)list?

selection actions from table1 where name='jacky';

我最初的想法是把Actions這一項(xiàng)當(dāng)成字符串處理,然后將通過(guò)逗號(hào)將其轉(zhuǎn)換為一個(gè)list。但感覺(jué)這樣做笨了點(diǎn)。在Sqlite側(cè)應(yīng)該有更簡(jiǎn)單的實(shí)現(xiàn)吧(我對(duì)數(shù)據(jù)庫(kù)/SQL不太熟)?

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2008-03-17 20:58 |只看該作者
把一個(gè)字符串拆分在python中非常簡(jiǎn)單。sqlite不提供把一個(gè)字符串字段拆成一個(gè)list的功能。

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2008-03-18 09:47 |只看該作者
謝謝 limodou的答復(fù)。如果只能以字符串形式存儲(chǔ)的話(huà),那如果記錄數(shù)量大的話(huà),那不就很浪費(fèi)空間?

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2008-03-18 13:37 |只看該作者
可否使用  Name + ID + Action 的表。

也就是多個(gè)Action存成多條記錄。

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2008-03-19 16:26 |只看該作者
可以使用VARCHAR http://www.sqlite.org/faq.html#q9

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2008-03-19 21:03 |只看該作者
SQLite里面的,其實(shí)沒(méi)有VARCHAR字符類(lèi)型,只有TEXT類(lèi)型,也不需要指定確切的字段長(zhǎng)度。(http://sqlite.org/datatype3.html)

至于字符串拆分的問(wèn)題,可以通過(guò)自定義aggregate函數(shù)的方法,把python函數(shù)binding到sqlite,這樣在SQL語(yǔ)句里就可以直接引用。

也可以考慮使用“串行化”的處理方式,這樣會(huì)顯得好像OO一點(diǎn)。

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2008-03-19 21:15 |只看該作者
看這里 http://www.sqlite.org/datatypes.html 在前面我給出的FAQ中也有VARCHAR的說(shuō)明。不過(guò)在3版中,仍然可以使用VARCHAR,不過(guò)會(huì)自動(dòng)轉(zhuǎn)為T(mén)EXT.

2.1 Determination Of Column Affinity

The type affinity of a column is determined by the declared type of the column, according to the following rules:

   1.

      If the datatype contains the string "INT" then it is assigned INTEGER affinity.
   2.

      If the datatype of the column contains any of the strings "CHAR", "CLOB", or "TEXT" then that column has TEXT affinity. Notice that the type VARCHAR contains the string "CHAR" and is thus assigned TEXT affinity.
   3.

      If the datatype for a column contains the string "BLOB" or if no datatype is specified then the column has affinity NONE.
   4.

      If the datatype for a column contains any of the strings "REAL", "FLOA", or "DOUB" then the column has REAL affinity
   5.

      Otherwise, the affinity is NUMERIC.

If a table is created using a "CREATE TABLE <table> AS SELECT..." statement, then all columns have no datatype specified and they are given no affinity.

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2008-03-25 15:21 |只看該作者
謝謝樓上各位的回復(fù)。我知道該怎么做了。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專(zhuān)區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP