Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 选择用于审核目的的选项_Mysql_Sql_Database Design - Fatal编程技术网

Mysql 选择用于审核目的的选项

Mysql 选择用于审核目的的选项,mysql,sql,database-design,Mysql,Sql,Database Design,我正在设计一个表来审核我网站上用户的语言选择(目前有15个)。我有两个表的风格和编码与他们,但我需要你的专业知识来选择一个比另一个,所以请告诉我哪一个更好。如果有其他选项,请打开 谢谢 选项1)在用户选择语言后,新记录被插入表中。将会有很多记录 表格 language - varchar(20) - Not Null insert into table (language) values ('english'); id - char(1) - default '1' lang

我正在设计一个表来审核我网站上用户的语言选择(目前有15个)。我有两个表的风格和编码与他们,但我需要你的专业知识来选择一个比另一个,所以请告诉我哪一个更好。如果有其他选项,请打开

谢谢

选项1)在用户选择语言后,新记录被插入表中。将会有很多记录

表格

language - varchar(20) - Not Null
insert into table (language) values ('english');
id         - char(1) - default '1'
language_x - int(11) - Unsigned
language_y - int(11) - Unsigned
language_z - int(11) - Unsigned
...
...
update table SET language_x = language_x + 1 where id = '1';
代码

language - varchar(20) - Not Null
insert into table (language) values ('english');
id         - char(1) - default '1'
language_x - int(11) - Unsigned
language_y - int(11) - Unsigned
language_z - int(11) - Unsigned
...
...
update table SET language_x = language_x + 1 where id = '1';
选项2)用户选择语言后,相关语言列的值增加1。只有一条记录

表格

language - varchar(20) - Not Null
insert into table (language) values ('english');
id         - char(1) - default '1'
language_x - int(11) - Unsigned
language_y - int(11) - Unsigned
language_z - int(11) - Unsigned
...
...
update table SET language_x = language_x + 1 where id = '1';
代码

language - varchar(20) - Not Null
insert into table (language) values ('english');
id         - char(1) - default '1'
language_x - int(11) - Unsigned
language_y - int(11) - Unsigned
language_z - int(11) - Unsigned
...
...
update table SET language_x = language_x + 1 where id = '1';

我建议您扩展选项1,以包括(至少)用户名、id和选择日期列,以及主键和其他您认为有用的内容。为您分析数据提供了灵活性,您现在可能只对选择特定语言的用户数量感兴趣,但以后您将有其他需要。

我也建议选择1。和选项2不同,当需要支持一种或多种语言时,您不需要在以后更改表。此外,在选项2中,每次更新不同语言的计数时,必须更改update语句本身的列名