我需要保存查看页面,流式传输歌曲和/或下载它的用户ID列表.我对列表的处理是添加并显示它.我真的不需要保存更多信息,我想出了两个解决方案.哪一个更好,或者我错过了更好的解决方案:
KISS解决方案 - 具有主键的1个表,歌曲id和上面三个交互(查看,下载,流)中的每一个的文本字段,其中将存在逗号分隔的用户id列表.添加它只是一个连接操作.
"最佳实践"解决方案 - 拥有3个表,其中主键是歌曲ID,而用户ID字段是进行交互的.每行都有一个用户ID,我可以添加日期和其他内容.
让我倾向于选项2的一件事是,检查用户是否已经投票选出歌曲可能更容易?
tl; dr version - 最好使用文本字段将数组保存为逗号分隔值,或者将数组中的每个项目放在单独的表行中.
肯定是第二名:
随着应用程序的增长,您将能够扩展应用程序
它将减少编程语言的依赖性
您将能够更快,更清晰地进行查询
对于其他程序员以后编写/调试您的应用程序,它将不那么痛苦
另外,我将添加一个名为"operations"的新表及其ID,因此如果您以后需要,可以添加不同的操作,在每行上存储操作ID而不是字符串("view","download","stream ").