让我举一个很好的例子来说明我的问题。
假设我正在构建一个应用程序,许多用户可以在其中发布不同类型的“帖子”(即照片、状态等)。对于这种情况,我们只使用照片和状态。
我将向您展示我当前如何对数据进行建模,以及是否可以改进(以及我做错了什么)
我有一个通用的 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 返回特定帖子(因为用户不应该关心。
我是否完全错误地建模了我的数据?如果是这样,您有什么改进的建议吗?