我面前有一个相当特殊的用例。有一个包含大约一千个条目(行)的 excel 文件,每一行代表用户应该判断的内容。
现在,每个人的条目都是一样的。应该收集的数据是
a) 有多少用户喜欢任何给定的条目
b) 任何给定用户喜欢什么条目
由于应用程序的一部分已经在运行并且我们有用户帐户, 我想为每个用户(!)创建一个包含所述 excel 信息的表,添加一行以收集选票。我会通过遍历用户列表并创建类似“userid_excelentries”的表来创建这些表。
我不认为这很优雅。我更愿意将 excel 信息只存储在一个表中一次,并且只将用户的投票保存在表“user”中。
该应用程序旨在显示从 excel 表格创建的表格(我已经完成了网格)和旁边带有复选框的一行。我该如何构建它?临时表?我如何将每个用户选择的信息存储在“用户”表中,因为我不知道先验会做出多少选择?
我有一个疯狂的想法,即通过 javascript 实际处理 xls 对象,将其序列化为散列并将该散列存储到每个用户行中的一个字段中......但我不知道这是否合理 :o
我们正面临 272 个用户 - 这就是我考虑采用“每个用户一个表”方法的原因。
最佳答案
您可以在您的数据库中使用 3 个表
users table
-----------
id
name
...
entries table
-------------
id
name
...
user_entries table
------------------
user_id
entry_id
user_response
要获得特定用户(即 Tom
)喜欢的所有条目,您可以这样做
select e.name
from entries e
join user_entries ue on ue.entry_id = e.id
join users u on ue.user_id = u.id
where u.name = 'tom'
and ue.user_response = 'like'
并计算每个条目的点赞数
select e.name, count(ue.user_id) as likes
from entries e
join user_entries ue on ue.entry_id = e.id
where ue.user_response = 'like'
group by e.id, e.name
关于mysql - 如何避免每个用户的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28191075/