我有一个名为Schoolyear的业务对象,目前有一个标志枚举:
[Flags]
public enum VisibleDayOfWeek : int
{
None = 0,
Monday = 1,
Tuesday = 2,
Wednesday = 4,
Thursday = 8,
Friday = 16,
Saturday = 32,
Sunday = 64
}
对我来说,这是没有标识符的值对象,它们没有获得额外的sql表。这也有点矫枉过正。
现在我考虑将这些可见日(用户可以配置)保存为数据库中的int值。它目前正在工作,但是在数据库中读/写并将这些值读/写到业务对象中并对这些对象进行集成测试是一件痛苦的事。
因为我有一个javascript客户端消耗json数据我今天早上想到为什么不将我从浏览器直接获得的json数组保存为数据库中的json字符串。所以我唯一要做的就是客户端的json.parse。要在服务器端进行集成测试,我使用json库中现有的json.serialize / deserialize方法。
可见天数在一年内仅变化1,2或3次不常见。每个用户每5年有5个schoolyear datarow可能不多。永远不会通过sql select查询可见天数列。 UI逻辑在客户端完成。
所以对我来说,最好将json数组存储为sql数据库中的json字符串。
您如何看待我的新方法?你有没有想到我可以在以后再次忏悔的任何负面副作用??
答案 0 :(得分:4)
不将JSON放在关系数据库的文本字段中的原因:
将JSON放在关系数据库的文本字段中的原因: