Прошу подскажите. Не могу спроектировать БД для разных типов сообщений

введите сюда описание изображения

Добрый народ Stack Overflow подскажите, как лучше спроектировать БД. Вот у меня есть Message, который принадлежит одному из Чатов. Этот самый message может быть 3 разных видов: Text, Photo, Offer(другая сущность). В будущем я буду добавлять еще другие типы.
На данной схеме я сделал так: некоторый MessageId (который может быть во всех 3 таблицах) и чтобы понимать в какой именно таблице я сделал MessageType. Но когда я буду работать с этой БД в коде, мне надо будет явно прописывать кейсы для каждого типа (if MessageType=='Photo' then Parse(Tables["MessagePhoto"]) elseIf...). Это совершенно не расширяемя и кажется мне что это совсем не правильно. Прошу подскажите как это делается правильно.
Если не добрым словом, то хотя бы ссылкой на статью или определением заумным (3-я правильная форма явно не сюда)...
Выручите меня прошу


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