Поиск таблиц для основного пользовательского ввода? - PullRequest
0 голосов
/ 13 октября 2010

Такие данные, как месяц рождения, день и год, возраст пользователя, пол / пол и т. Д. Должны ли они храниться в виде текста или идентификатора в базе данных?ID на основе означает, что они будут иметь значения поиска.Например, используется: при регистрации пользователя регистрируется возраст, в профилях пользователей указывается возраст партнера по поиску и т. Д., Поэтому возраст и другие данные можно использовать в нескольких местах.В бэкэнде будет аналитика, которая подталкивает меня использовать таблицы поиска даже для таких мелких вещей, как Gender, которые имеют только 2-3 значения.

Ответы [ 2 ]

0 голосов
/ 14 октября 2010

Я бы не стал искать таблицы поиска для упомянутых вами полей.Месяц, день рождения, год рождения могут быть заключены в одно поле даты (с типом даты, а не текстом), а затем разделены функциями базы данных, если вам нужно.Возраст - это просто число, которым будет все ваше поле идентификатора, поэтому нет смысла искать его, если вы не хотите фактически ограничить диапазон возраста, и в этом случае вы можете использовать проверочное ограничение вместо поиска, если вынеобходимо ограничить фактическим диапазоном (например, возраст> = 1 и возраст <= 20).Пол / пол - это единственный вопрос, на который я мог бы обратить внимание, но из-за того, что возможных значений очень мало, должно быть достаточно ограничения проверки. </p>

О, и я не знаю, какой аналитик вы используете,но любое аналитическое программное обеспечение, достойное своей цели, может создавать доменные поля (списки уникальных значений в полях таблицы) самостоятельно, особенно для упомянутых вами полей.Если вы строите свою собственную аналитику (не уверен, основываясь на вашем комментарии к решению другого автора), вы можете легко создавать запросы, чтобы делать то, о чем вы говорите.

0 голосов
/ 13 октября 2010

Вы хотите сослаться на типы данных или базы данных доступны. Для mysql: http://dev.mysql.com/doc/refman/5.0/en/data-types.html

Не используйте ни одно из полей, которые вы упомянули в качестве первичного ключа. Либо создайте столбец 'id', либо используйте имя пользователя пользователя.

Вот база данных для полей:

  • дата рождения = дата
  • age = tinyint (Технически это вам не нужно, поскольку вы всегда можете определить его по дате рождения и текущей дате. Это зависит от того, что вы делаете)
  • пол = enum
...