最近,我不得不编写一个动态显示页面的API接口,考虑将内容与显示方式分开,以便重新使用显示配置。
总体设计如下:
显示模板表模板;
显示内容表元素,该元素分为几种不同的类型,分别对应于不同的数据和显示类型;
多个内容表,detail_xxx,特定内容(例如哪些产品)与显示无关;
对应于内容表,多个显示表,display_xxx,确定数据显示格式,例如页边距,图像大小等。
细节上有确定性,元素,细节和显示之间的关联如何更好?
选项1 :与明细表关联,将display_xxx_id放在表detail_xxx中。这也是最初的想法,但根据MVC设计,此方法并未将内容和显示完全分开,在大多数情况下,详细信息可能只是列表;
选项2 :元素表的id关联,elementid被添加到detail_xxx,并被添加到显示,因此耦合度很低,但是显示的复用度不高,数据容易冗余;
选项3 :元素表与字段,detail_id和display_id相关联。这样,显示是可重用的,并且内容和显示之间的关联很弱。
现在,我使用 option-2和option-3 之间的折衷,即element-detail,在明细表中添加elementid关联,因为在大多数情况下明细是一个列表;由于显示是唯一的,element-display在元素表中添加了displayid关联。
我想知道哪个更好,以及如何设计内容与其显示之间的关联?