猿问

积分相关数据库表该如何设计?业务表和积分明细表该如何匹配上

我有三个表:积分明细表 P,发布文章表 A,上传图片表 C
现在的需求是:
每发布一篇文章可获取积分,每天上传的第一张图片可获取积分。
需要查积分明细;查发布的该文章获取的积分数,并且可以追加积分;查发布的该图片获取的积分数,并且可以追加积分

我的问题是数据库表应该如何设计:

方案一:
A表和C表存储该条记录获取的积分数,同时在P表也存一笔积分记录,描述用文字注明,不与A表C表相关联
问题:
1,实际业务场景不仅是A表C表两张表和获取积分相关,还有其他很多表,,每张表都加积分字段有点奇怪
2,其实还有获得红包,获得实物的情况,不能都在分表加字段吧
3,如果C表中删除一笔积分明细,找不到对应的表去修改数据。

方案二:
P表加两个字段,类型(积分类型)、来源(存A表名称或存1,2,3对应表名)、来源数据的ID(A表数据ID)。
查询发布的该文章获取的积分数和追加积分时,用枚举类去匹配查询
问题:
1,查询变复杂了
2,来源数据的ID——该字段存储的是不同表的ID,很别扭

想问问大家有什么更好的设计方案吗?如果没有的话,两个方案选择哪个好一点呢?


慕沐林林
浏览 550回答 1
1回答

慕桂英3389331

建议方案二1、扩展性好2、来源数据的ID,不别扭。为了扩展性好,所以可以存储不通表得id.
随时随地看视频慕课网APP

相关分类

Java
我要回答