【发布时间】:2013-03-06 05:34:29
【问题描述】:
如何在不重复存储评级的行的情况下存储多个评级
create table pic_table
(user_id varchar2(10) not null,
pic_id number not null,
pic_snap bfile,
rating number,
constraint snp_pk primary key (pic_id));
insert into pic_table
values(u1,p1, bfilename('GIF_FILES', 'PIC_1'),'JPEG');
User1 上传一张图片,它可以被评为 1,2 或 3。然后 user2 将图片评为 2,u3 将图片评为 3。记录每个评分是否需要 3 列,我是否需要 3 行来记录每个用户对图片的评分,即
user_id pic_id vote_1 vote_2 vote_3
u1 pic_1 u2 u3
如果用户评分超过 2 个,即 user4 评分为 2,user5 评分为 3,该怎么办。如何存储这些数据并计算汇总?
user_id pic_id v_1 v_2 v_3
u1 pic_1 u2 u3
u1 pic_1 u4 u5
这将占用大量空间。我可以使用记录以数组的形式存储值并通过从集合中提取结果来计算聚合吗?
【问题讨论】:
标签: database database-design architecture