Поля для изображения / профиля пользователя - нормализация базы данных - социальные сети - PullRequest
0 голосов
/ 17 июля 2011

Должен ли я нормализовать пользовательские profile_image_url ссылки и поля, например profile_background_color что пользователи могут настраивать свои профили?

Один класс пользователя со всем.

class User {

  String profile_big_url
  String profile_thumb_url

  String profile_background_color
  String profile_text_color
  String profile_link_color
  String profile_sidebar_fill_color
  String profile_sidebar_border_color
  String profile_background_image_url
  String profile_background_tile

}

Или три класса

class User{

   Photo photo
   Profile profile

}

class Photo{
   User user   
   String profile_big_url
   String profile_thumb_url
}

class Profile{
   User user
   String profile_background_color
   String profile_text_color
   String profile_link_color
   String profile_sidebar_fill_color
   String profile_sidebar_border_color
   String profile_background_image_url
   String profile_background_tile
}

Что лучше в отношении масштаба, производительности, модификации?

1 Ответ

1 голос
/ 17 июля 2011

Я бы не волновался об этом.Разделение таблиц приводит к меньшим select с, но это просто короткие строки, поэтому затраты на добавление большего количества данных, чем вам нужно, незначительны.Объединения могут быть дорогими, но, опять же, они могут быть простыми.

Альтернативой может быть оставить все в одной таблице, но логически разделить класс на три только в коде, используя компоненты.Смотри http://grails.org/doc/latest/guide/5.%20Object%20Relational%20Mapping%20%28GORM%29.html#5.2.2%20Composition%20in%20GORM

...