• Маппинг переводимых сущностей. Как?

    DarkRaven
    @DarkRaven
    разработка программного обеспечения
    Вы можете сделать представление на уровне БД, в котором выводите пост и все его переводы, т.е. умножение постов на языки + соединение по коду языка его перевода (тут можно так же сделать вывод текста по умолчанию, для перевода, которого нет).

    Потом, просто делаете :
    var posts = db.PostViews.AsNoTracking().Where(x=>x.LanguageCode == CurrentLanguageCode)
    	.ProjectTo<PostDto>();


    где PostViews - это ваше представление в БД, с полями из post-а и, как минимум, кодом языка.
    Ответ написан
    Комментировать
  • Нужен ли уникальный идентификатор для связующей таблицы?

    oxyberg
    @oxyberg
    Продуктовый дизайнер ВКонтакте
    Стоит добавить еще один айди, чтобы при всяких редактированиях сущности Личности фильма тягать по этому айди данные из бд, и потом их туда же толкать по этому айди (то есть не будет возни со сменой данных, которые уже являются составным первичным ключом).
    Ответ написан
    2 комментария
  • Разделение системы на модули?

    @MarkusD
    все время мелю чепуху :)
    Ты все правильно думаешь. Базовое разделение на модули выглядит рационально.
    А дальше давай думать логически.

    Мы хотим из одной подсистемы взять что-то, а данные другой подсистемы использовать как признак выборки. Наш новый механизм сам собой выглядит как часть полностью отдельной от первых двух подсистемы. Он должен находиться в третьей подсистеме, сущности которой будут знать все нужное как о первой, так и о второй подсистемах.

    В итоге, нам надо завести утилитарную подсистему, связанную как с фильмами, так и с рейтингами.
    Для утилитарной подсистемы нормально знать сразу о многих других подсистемах, даже о других утилитарных. Поэтому в одной утилитарной подсистеме можно завести связи между фильмами и актерами, фильмами и внешними рейтингами, и.т.д.
    Чувство меры в этом деле работает на уровне богатства интерфейса по связи между подсистемами. Если связь между некоторым набором подсистем порождает богатый интерфейс, то этот интерфейс имеет смысл выдавить в отдельную подсистему.

    Более того, я обычно рекомендую полностью разделять данные и логику в разные подсистемы. Всякие там поиски, фильтрации и прочие любые манипуляции над неизменными данными лучше держать в отдельной подсистеме. Тогда всегда будет понятно, структура данных поменялась или метода манипуляции с этими данными.
    Ответ написан
    2 комментария