我有一个名为 Schoolyear 的业务对象,目前有一个 flags 枚举:
[Flags]
public enum VisibleDayOfWeek : int
{
None = 0,
Monday = 1,
Tuesday = 2,
Wednesday = 4,
Thursday = 8,
Friday = 16,
Saturday = 32,
Sunday = 64
}
对我来说,这是没有标识符的值对象,它们没有额外的 sql 表。这也将是矫枉过正。
现在我考虑将这些可见日期(用户可以配置)保存为数据库中的 int 值。它目前可以工作,但是在数据库中读/写并将这些值读/写到业务对象中并与该对象进行集成测试是很痛苦的。
因为我有一个使用 json 数据的 javascript 客户端,所以今天早上我想为什么不将我从浏览器直接获取的 json 数组保存为数据库中的 json 字符串。所以我唯一要做的就是客户端的 json.parse 。为了在服务器端进行集成测试,我使用了 json 库中现有的 json.serialize/deserialize 方法。
可见天数在一年中仅更改 1,2 或 3 次,并不经常。每个用户每 5 年有 5 个学年数据行可能不多。永远不会通过 sql select 查询可见天数列。UI 逻辑在客户端完成。
所以对我来说,将 json 数组作为 json 字符串存储在 sql 数据库中是一个好主意。
你觉得我的新方法怎么样?你有没有看到我没有想到的任何负面影响,我以后可以再次悔改......?