用于基本用户输入的查找表?

时间:2010-10-13 17:56:19

标签: database database-design schema

出生月份,日期和年份,用户年龄,性别/性别等数据是否应将这些数据存储为基于数据库的文本或ID?基于ID意味着它们将具有查找值。用法例如:用户注册将记录年龄,用户配置文件将具有寻求合作伙伴年龄等,因此年龄和其他数据可以在多个地方使用。在后端会有分析,它促使我使用查找表来处理像Gender这样只有2-3个值的小东西。

2 个答案:

答案 0 :(得分:0)

您将需要引用数据类型或数据库具有可用性。对于mysql:http://dev.mysql.com/doc/refman/5.0/en/data-types.html

请勿使用您提及的任何字段作为主键。创建“id”列或使用用户的用户名。

以下是字段的数据库:

  • birthDate = date
  • age = tinyint(从技术上讲,你不需要这个,因为你总是可以根据他们的出生日期和当前日期确定它。这取决于你在做什么)
  • gender = enum

答案 1 :(得分:0)

我不打扰你提到的字段的查找表。出生月,日,年都可以封装在一个日期字段(w / date类型,而不是文本)中,然后根据需要拆分出数据库函数。年龄只是一个数字,这是你的所有id字段,所以除非你想要实际限制年龄范围,否则没有多大意义,在这种情况下你可以使用检查约束而不是查找需要限制到实际范围(例如,年龄> = 1且年龄<= 20)。性别/性别是我可能考虑查找的唯一一个,但由于可能的值很少,检查约束就足够了。

哦,我不知道你正在使用什么分析,但是任何有价值的分析软件都可以自己生成字段域(表格字段中的唯一值列表),特别是对于你提到的字段。如果您正在构建自己的分析(不确定,根据您对其他海报的解决方案的评论),您可以轻松地进行查询以执行您所说的内容。