我有一个有角度的JSON客户端与JAVA/MySQL堆栈接口。由于MySQL是一个关系型数据库管理系统,所以我的所有数据都是规范化的(当然,前三种形式)。
我的问题可以用下面的例子来说明。
我有一个示例对象和一个由服务器返回的用户对象。
Example - [{
userId:1,
...
...
..
},
{
userId:2,
...},
{
userId:3,
...}];
User - [
{
userId - 1,
firstName - "John",
lastName - "Doe",
..
},
{
userId - 2,
firstName - "Jane",
lastName - "Doe",
..
}, {...}...
]当我使用角“示例中的example_entry”查看示例集合并显示示例集合元素时,我只有现成的userId。但是,如果我想显示firstName和lastName,就不能这样做,因为它位于不同的“用户”集合中。我必须编写一个辅助角控制器/服务方法,从用户集合中获取firstName、lastName,并将其与示例集合对象绑定。
为了避免这个问题,我可以取消Java Ojbects的规范化,并准备像这样使用JSON。
Example - [{
userId:1,
firstName - "John",
lastName - "Doe",
...
...
..
},
{
userId - 2,
firstName - "Jane",
lastName - "Doe",
...},
{
userId:3,
...}];但是这是好/坏/可怕吗?因为现在我的Java对象具有firstName,LastName在示例对象和用户对象中重复。哪条路线更好,有什么建议吗?
De-Normalize and have ready to use JSON
Keep Data Normalized to avoid duplication and write converter methods on the Client as needed发布于 2013-09-22 08:13:25
这是我对这个的看法。当涉及到显示\列表数据时,我并不担心域模型\类。对我来说,返回的数据应该尽可能匹配UI显示要求。这里的目的是向用户显示数据,而对此类屏幕的决策却不多。
但是,如果数据需要更改\更新,则需要更加小心发送的内容,哪些实体参与更新。保持数据的一致性成为优先事项,在这种情况下,去规范化可能不合适。
https://stackoverflow.com/questions/18940377
复制相似问题