我正在创建一个显示仪表板的系统。仪表板由许多不同类型的小面板组成,例如趋势,直方图,蜘蛛图等
目前,我将每个dashlet定义为oracle表中的一行。我的困境如下。每种类型的小面板都有一组不同的参数,如线条颜色,y轴标题,最大y等。到目前为止,我一直在为每个参数创建一个不同的列,但这意味着我有很多列和很多列列的列与特定的小面板无关,并且保留为空。我现在尝试使用一个名为definitions的列,其中包含定义dashlet特征的信息。示例如下。
ytitle:计数|
linecolor:黄色|
linethickness:12 |
.....
问题在于,如果你拼错了一个项目,程序将在运行时失败。 解决这个问题的最佳方法是什么。
答案 0 :(得分:1)
您可以创建表格,比方说t_parameters,其中参数名称(ytitle,linecolor)将是主键或唯一键。然后你可以在你的定义表中的parameter_name列上创建一个外键(存储assingment:ytitle Count等等)
现在,如果您想确保参数值来自精确列表,您可以通过创建参数值表并在定义表中创建唯一键然后创建外键来执行相同操作。
然后,如果您需要它更高级并检查哪个参数可以是哪个值,您可以创建具有列parameter_name的查找表,parameter_value如:
linecolor;黄
linecolor;红色
Ytitle;总和
Ytitle;计数
这是如何确保参考完整性的一种方法。
最佳做法是在参数名的t_parameter中设置一个数字id并将其设为PK并在查找表中引用它们。