我需要设计一个数据库,该数据库将容纳大量数据。我必须使用RDBMS数据库(SQL Sever或MySQL尚未决定)。以下是我可以想到的简化的标准数据库设计:
但是,由于需要保留节点和关系表的大量数据(数以十亿计的记录并保持增长),我计划为每棵树动态生成节点和关系表。动态设计如下:
因此,每次克隆新的树或版本时,都会基于版本ID和树ID创建新的数据库表。动态生成的表的名称将存储在tree.node_table_name
和tree.relationship_table_name
示例:
如果您为版本(id = 4)创建新树(id = 10),则表名将为4_10_node和4_10_relationship,并且这些名称将保存到tree.node_table_name
和{{1 }}。
问题:
更新:
每个版本可以有超过5亿个节点,而我有很多这样的版本,这将使整个节点表行数达到数十亿。因此,提出了动态创建单独表的想法。