Хранение информации о сущности в нескольких языках[EF]

Хочу добавить поддержку нескольких языков(пока en/ru) для некоторых сущностей. Сущность - таблица в EF. Одно из требований - легкое добавление информации на новом языке. Погуглил и пока единственное что нашел(на англ ветке) следующий пример.

Например, есть api с информацией о фильмах. Для данного api рассмотрим следующие таблицы:

  1. Language - язык
  2. Movie - общая информация о фильме, которая одинаковая для всех языков - связи, целочисленные/вещественные и прочие данные(кроме строк)
  3. TranslatedMovie - переведенная информация о фильме на каждом языке(описание, слоган и.т.п)

В качестве субд использую postgresql.

public class Language
{
    public int Id { get; set; }

    [Required]
    public string Name { get; set; }

    [InverseProperty("Language")]
    public ICollection<TranslatedMovie> TranslatedMovies{ get; set; }
}
public class Movie
{
    public Guid Id { get; set; }

    public int Budget { get; set; } //Информация одинаковая для всех языков

    public ICollection<TranslatedMovie> TranslatedMovies { get; set; }

    public Movie()
    {
        TranslatedMovies = new List<TranslatedMovie>();
    }
}
public class TranslatedMovie
{
    public Guid ProfileId { get; set; }
    public Profile Profile { get; set; }

    [ForeignKey("Language")]
    public int LanguageId { get; set; }
    public Language Language { get; set; }

    public string Description { get; set; } //Для каждого языка разная информация
                                            //В данном случае это описание
}

Оптимальное ли это решение или есть лучше?


Ответы (0 шт):