一份报告可以有多个图表,Chart表如下:
这个设计是我的第一次尝试,我发现它存在多个问题:
我的设计是否正确?如果正确,如何解决上述问题(FK,连接,多个表中的唯一id和映射)。
- Chart -- Id, ChartId, ReportId, ...
- Line: ChartId, Thickness, YAxis, XAxis, Color, ...
- Pie: ChartId, Radius, Color, ...
- Bar: ChartId, Width, Color, Border, ...
这个设计是我的第一次尝试,我发现它存在多个问题:
- Chart.ReportId不能是多个表上的外键,因此强制执行FK是一个问题。
- 运行SQL(或Linq)查询时,我将不得不运行两个查询以获取图表类型,然后查询该表。 或者,我将不得不对所有表运行join以获取图表数据。
- 当与Chart Types进行连接时,这些表中的ChartId需要是唯一的,因此Chart.ChartId仅映射到Line.ChartId 或Bar.ChartId或Pie.ChartId之一。
- 使用EF将其映射可能有些棘手。
我的设计是否正确?如果正确,如何解决上述问题(FK,连接,多个表中的唯一id和映射)。