我有 2 个表 clients
和 grades
,其中 clients
有一个 grade
列,索引从 1 到 10 . 这些索引对应于 grades
表中的 ID(当然)。假设客户在 clients.grade
列中的索引为 1、5、8,而我想从 grades
表中的这些行中获取 *。
我的第一个方法是在 client
表中使用类型为 char(20) 的 grade
字段,并用逗号分隔的索引填充它,例如 1,5,8或其他号码。然后从 client
表中的一个客户端读取这些值,我分解 (PHP) 结果并获得一个包含 3 个(或更多)单个值的数组。然后在下面的查询中,我选择了 grade
表中的所有行。
现在一个问题是使用字符字段还是枚举字段,另一个(一般)问题是如何对整个任务进行简单、巧妙的查询。
我还没有编码。 grades
表将有最大值。 10 行,其中 client
表有大约 2.000 行增长到最大值。 5.000 行。我希望我能描述我的方法可以理解。
欢迎提出建议
最佳答案
将 grade
列拆分到一个包含 clientId
和 grade
的新表(client_grade
?),并有每个 client
的多个记录。然后可以使用 JOIN
从 clients
检索客户的成绩到 client
上的 clients_grade
表字段
表中的每个字段都应该包含一条信息,逗号分隔值会导致额外的处理。如果您想找出谁获得了特定的成绩等,使用单独的表格也会对您有所帮助
关于MySQL : How to code query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39387386/