私の問題を説明する素晴らしい例を挙げましょう。
多くのユーザーがさまざまな種類の「投稿」(写真、ステータスなど) を投稿できるアプリケーションを構築しているとします。この場合、写真とステータスだけを使用しましょう。
私が現在どのようにデータをモデリングしているか、またこれを改善できるかどうか (および私が間違っていること) を示します。
私は一般的な Post クラスを持っています:
public class Post<T>
{
public Guid Id { get; set; }
public User Owner { get; set; }
public DateTime CreatedDate { get; set; }
public PostType Type { get; set; }
public T Data { get; set; }
}
それから私は PostType 列挙型を持っています:
public enum PostType
{
Photo,
Status
}
次に、それぞれの写真とステータスのクラスがあります
public class Photo
{
public string Url { get; set; }
public int Width { get; set; }
public int Height { get; set; }
}
public class Status
{
public string Text { get; set; }
}
このデータをモデル化するための現在のソリューションを追求すると、問題が発生することはわかっています。
タイプに関係なく最新の25件の投稿を返す方法や、投稿のタイプを指定せずにIDで特定の投稿を返す方法など、すでにいくつかの問題点にぶつかっています(ユーザーは気にする必要がないため.
私のデータのモデリングは完全に間違っていますか? もしそうなら、改善のための提案はありますか?