我需要有关 MySQL 的建议。
我有一个用户表,其中包含 id、昵称、numDVD、金钱和表 DVD,其中包含 idDVD、idUser、LinkPath、计数器。
现在我相信我可以拥有 max. 20 个用户,每个用户大约有 30 张 DVD。
因此,当我插入 DVD 时,我应该有 idDVD(自动增量)、idUser(用户表的相同 idUser)、LinkPath(通用字符串)和计数器,它是一个从 1 到 30 的数字(唯一数字)(取决于每个用户的数量或 DVD)。
问题是处理最后一列“counter”,因为我会从 1 到 30 中选择 2 3 个具有相同 UserId 的随机 DVD。
所以我在想这是否是我的最佳解决方案并且难以处理(对我来说我从未使用过 MySQL)或者最好创建 20 个表(每个用户 1 个)包含 ID 和 DVDname 等。
谢谢
最佳答案
不要创建 20 个表!那太过分了,如果您将来需要添加更多用户怎么办?可靠地维护和更新几乎是不可能的。
更好的方法是:
Table users
-> idUser
-> other user specific data
Table dvd
-> idDvd
-> DVDname
-> LinkPath
-> other dvd specific data (no user data here)
Table usersDvds
-> idUser
-> idDvd
这样,如果一个或多个用户拥有相同的 DVD 就没有问题,因为它只是 usersDvds 表中的另一个条目 - idDvd 值将相同,但 idUser 会不同。要计算用户拥有多少张 DVD,只需执行 SELECT count(*) FROM usersDvds WHERE userId = 1
关于MySQL - 两种解决方案之间的最佳性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7844341/