如何设计关系数据库中内容与显示之间的关联?

时间:2018-10-16 02:23:22

标签: model-view-controller design-patterns database-design relational-database

最近,我不得不编写一个动态显示页面的API接口,考虑将内容与显示方式分开,以便重新使用显示配置。

总体设计如下:

  1. 显示模板表模板;

  2. 显示内容表元素,该元素分为几种不同的类型,分别对应于不同的数据和显示类型;

  3. 多个内容表,detail_xxx,特定内容(例如哪些产品)与显示无关;

  4. 对应于内容表,多个显示表,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关联。

我想知道哪个更好,以及如何设计内容与其显示之间的关联?

0 个答案:

没有答案