存储与特定项目关联的用户列表

时间:2016-01-17 21:41:16

标签: mysql sql database organization

这有点难以解释。

但我已经构建了一个应用程序,用户可以创建我喜欢称之为“抽奖”的应用程序,然后用户订阅它。

我有一张抽奖活动的表格,我可以在其中加入一列文字类型,并用逗号(,)分隔所有用户,

或者我可以创建一个单独的表格,其中添加了用户并通过另一个名为“raffle_id”的字段或类似的东西与抽奖相关联。

我不确定这两种方法在长期运行或缩放方面效率如何有效。

有些建议值得赞赏。

2 个答案:

答案 0 :(得分:1)

我建议不要以CSV格式存储您的用户信息。这样做的主要原因是CSV将使用户难以查询表格。它也会使更新变得困难。 SQL数据库旨在使用表处理关系数据。所以在你的情况下,我会设计raffles表看起来像thia:

raffles (raffle_id, user_id)

数据可能如下所示:

1 1
1 3
1 7
2 1
2 2
2 3
2 6

换句话说,每条记录对应一个raffle - user关系。假设你只有几十个用户和抽奖活动经常发生,那么thia应该可以扩展。如果这个raffles表在更晚的日期变得太大,你可以归档它的一部分。

答案 1 :(得分:0)

请参阅[将用户添加到数据库中的多个组的最佳方法是什么?] [1]

莱佛士是“团体”。 “UserInGroup”成为您的连接表UserInRaffle。