Ваш основной выбор: -
1. Наследование
Модели Videos
и Users
как подклассы Items
либо: -
1,1. Наследование таблиц на класс (одна таблица для видео, другая для пользователей)
1.2 Наследование таблиц на иерархию (одна таблица, которая содержит видео и пользователей вместе (некоторые поля скрыты для некоторых типов)
Я предлагаю вам посмотреть таблицу на класс и таблицу на иерархию для Entity Framework.
2. Использование общих интерфейсов (например, ICommentableObject <..>, ICommentableObjectContext <...>)
Это позволяет вам иметь отдельные таблицы Video, User, Comment и FKrelationships для VideoComment и UserComment (и в целом для любых других таблиц, которые вы хотите комментировать).
Это выполнимо, но это очень комплекс. Например, у меня есть реализация ITaggable, которая может применять теги к любому ObjectContext и любым объектам в нем, которые поддерживают данный интерфейс - но это было нелегко.