我正在为一个系统编写一个关系数据模型,该模型跟踪浏览器中呈现的一组框,每个框都包含渲染图像。
目前,只有一个表:Box。每行都有 x 和 y 坐标、宽度和高度列,以及用于图像内容类型(例如 mime 类型)和内容位置(例如文件路径或 URL)的列。
有些盒子有一层嵌套——即一个盒子可以包含另一个盒子。在这些情况下,内容类型列具有特殊值“box”,并且位置是对 Box 表的自引用。
某些内容类型(少数)具有与内容类型相关的额外值,例如,如果图像文件是更复杂的多页格式(例如 PDF),那么我需要存储将在框中呈现的页面。
我可以/应该在一张表中表示这个吗?在这种情况下,额外的参数可以(例如)作为查询字符串存储在文件 URL (/path/to/PDF.pdf?page=4) 中。
如何处理更新自引用 Box 行?即,如果我删除一个包含另一个框的框,则应删除两行。我不能在位置列上使用外键约束,因为它可以是 url(用于非嵌套框)或框行 ID(用于嵌套框)。