Söylediğin şeyler bir birinden farklı aslında. Kullanıcılar kendi aralarında mesajlaşsın dediğinde soket yapısı yada signalr işini çözecektir. Ancak biraz ileri seviye bu konular. Planlama deparmartmanı konu açacak başka bir birim altına mesaj atacak mantığıyla düşündüğünde biraz ticket sistemine dönüşüyor. Programcılıkta yeniysen bunu yapman daha kolay olacaktır.

1 Tane Konu Tablon Olur
KonuID
Konu Başlığı
Oluşturan Kişi ID
OluşturmaTarihi vb.

1 Tane Mesaj Tablon Olur
MesajID
KonuID
Mesaj İçeriği
Oluşturan Kişi ID
OluşturmaTarihi vb.

Aralarındaki ilişki 1 Konunun Birden Fazla Mesajı olabilir şeklinde 1'e Çok şeklinde olmalı.
Mesaj Tablonda ise 1 Mesaj 1 konuya sahip olabilir şeklinde kurgulanmalı.

C# Tarafında masaüstü mü web mi ne yazıyorsun bilmiyorum. Lakin basit bir 2 tabloyu include ederek birleştirip ufak bir foreach ile işi çözebilirsin.
Tabi puanlama sistemi vb. gibi daha da detaylandırmak istiyorsan Konu tablonda Cevap bekliyor - Birim Cevapladı vb. gibi durumlarda tutabilirsin.