mySQL:如何编写查询代码
我有两个表mySQL:如何编写查询代码,mysql,Mysql,我有两个表clients和grades,其中clients有一个grades列,索引从1到10。这些指数与等级表中的ID相对应(当然)。假设一个客户在clients.grade列中的索引为1,5,8,而不是我想要从grades表中的那些行中获取的* 我的第一种方法是在client表中使用char(20)类型的grade字段,并用逗号分隔的索引(如1、5、8或其他数字)填充它。然后从clienttable I explode(PHP)中的一个客户端读取这些值,并将结果分解为一个包含3个(或更多)单
clients
和grades
,其中clients
有一个grades
列,索引从1到10。这些指数与等级
表中的ID相对应(当然)。假设一个客户在clients.grade
列中的索引为1,5,8,而不是我想要从grades
表中的那些行中获取的*
我的第一种方法是在client
表中使用char(20)类型的grade
字段,并用逗号分隔的索引(如1、5、8或其他数字)填充它。然后从client
table I explode(PHP)中的一个客户端读取这些值,并将结果分解为一个包含3个(或更多)单个值的数组。然后在下面的查询中,我选择grade
表中的所有行
现在一个问题是使用char字段还是枚举字段,另一个(一般)问题是如何对整个任务进行简单、巧妙的查询
我还没有编写代码。grades
表最多有10行,其中作为客户端
表,大约有2000行,最多有5000行。我希望我能把我的方法描述得通俗易懂
欢迎提出任何建议将
等级
列拆分为一个新表(客户_等级
?),其中包含客户ID
和等级
,并且每个客户
都有多条记录。然后可以使用连接从客户
到客户
字段上的客户_等级
表检索客户的等级
表中的每个字段都应该包含一条信息,逗号分隔的值将导致额外的处理。如果你想知道谁得了某个特定的分数,那么使用一个单独的表格也会帮助你,等等关于这个问题的想法可能已经重复了,但是在客户表格
本身中创建了10个列。问题是您必须验证客户机
表中的每一列,并获取等级
表中相应的行,这必须在迭代中完成。或者有更好的方法吗?client\u grade
表将有两列:client\u id
和grade
。您在该表中插入多条记录,一个客户达到的每个等级对应一条记录(即,如果我达到3个等级,将有3条记录)。然后使用JOIN
从以下三个表中检索信息:client->client\u grade->grades
。这个系统的另一个优点是,如果一个等级有争议并且随后发生了更改,那么更新查询将非常简单—了解表关系并以合理的方式创建模式。如果一个字段需要包含多个数据段,那么它本身就应该成为一个表,并与主表有一个关系+这是我的荣幸。我将遵循这个答案,并在稍后报告这项工作。