mysql - 为审计目的选择一个选项

标签 mysql sql database-design

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

谢谢

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

表格

language - varchar(20) - Not Null

代码

insert into table (language) values ('english');

选项 2) 在用户选择语言后,相关语言列的值增加 1。只会有一条记录。

表格

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 以包括(至少)user_name、id 和 selection_date 列以及主键和您认为可能有用的任何其他内容。使您可以灵活地分析数据,您现在可能只对选择特定语言的用户数量感兴趣,但稍后您会有其他需求。

关于mysql - 为审计目的选择一个选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18891869/

相关文章:

mysql - RoR中的动态条件查询

mysql - STR_TO_DATE 和 LOAD DATA INFILE 格式问题

sql - 如何在仅插入数据库中创建具有依赖元素的草稿页面

mysql - 将查询保存在变量中然后添加 where 子句?

mysql - 精确单词匹配(非英文字符)

php - 使用 CDbCriteria 根据值数组查询数据库

sql - 如何禁用mysql的匹配查询的50%排除

Sqlite 将数据库合并为一个,具有唯一值,保留外键关系

mysql - 在 MySQL 中存储物理尺寸

c# - 在数据库中保存类类型的最佳方法?