PostgreSQL数据库创建多字段表以及插⼊多⾏数据
今天开始记录做毕设遇到的⼀些问题,毕设做⼀个C/S架构的⾳乐播放器,主要特点是实现⾳乐推荐功能,前段时间做了⼀点了,从今天开始记。
今天的⼩任务是创建⼀个数据库表musicdata,记录⽤户对⾳乐的打分,作为推荐系统计算的数据来源。
表是这样的:
user1
user2
...
以前没有⽤过像样的数据库,只在学习Python时⽤过sqlite,关系数据库⽬前同学中貌似⽤Mysql的⽐较多,图书馆资料也⽐较
多,Google⼀下据说PostgreSQL⽐MySQL更好,就⽤这个吧。
毕业设计不要做的多好,暂定系统⾥有1000⾸⾳乐,于是这个表要有1001个字段,看起来静态语⾔SQL命令是不太合适,由于以前没接触过动态SQL语句,⼀看就头⼤,了⼀个⼩时也没到合适的资料。⽤Python写个脚本,⽣成部分静态SQL命令,再放到⼤象的⿐⼦(PgAdminⅢ)⾥,⼀个1001个字段的表就建成了。
Python代码:
python新手代码userid1 file=open(r'D:\','w')
2for i in range(1000):
3 s='song'+str(i+1)+' float,'+'\n'
4 file.write(s)
5 file.close()
这个脚本很简单,但是Python就是拿来帮我们简单的完成⼀些简单的任务,⽐如这个毕业设计,哈哈。
第⼀个问题解决了,第⼆个问题就是插⼊数据了。表中⼀个⽤户占⼀⾏,userid是key,后⾯对应的是该user_i对song_j的打分。毕设嘛,简单点,先弄1000个⽤户,只要insert1000下就好,这有点⿇烦。⼀查,可以COPY,从⽂本⽂档中将数据copy到数据表⾥。现在问题就是⽤Python把数据存到txt⾥。
这⾥数据⽤随机数表⽰吧,还没真实数据。
1import random
2
3def blankReplace(a):
4 s=str(a)[1:-1]
5while(s.find('')!=-1):
6 place('','')
7return s
8
9 file=open(r'E:\','w')
10for j in range(1000):
11 data=[random.randint(0,3) for i in range(1000)]
12 strdata=blankReplace(data)
13 file.write('user'+str(j+1)+','+strdata+'\n')
14 file.close()
这样数据就跑到⾥去了,只要使⽤SQL COPY语句就可以把数据COPY到表⾥去。
1 COPY musicdata FROM'E:\' DELIMITER ',';
PostgreSQL据说是个极好的关系型数据库,但是⽤在像我毕业设计这种⼩问题上的时候我感觉不是特别⽅便,尤其是动态SQL语句实在是⿇烦。在查资料的时候我粗略看了⼀下最近有点⽕的NoSQL,我觉得基于Key-Value的数据结构可以很好的应⽤在我的问题上,于是我决定做完毕设之后要学习⼀种
NoSQL,Redis或者MongoDB吧。
今天的任务就是这些,看上去相当简单,但是在过程中还是有些收获的。⾄少我更爱Python了⼀点,还有我决定暑假学习NoSQL。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论