我正在尝试开发一个数据库来存储和检索动态创建的分层部门结构。每个部门可以有一组子部门或一组子属性,但不能同时拥有。在运行时,用户创建一个部门和部门的孩子。如果部门有属性作为子项,用户指定每个属性的类型(int/string/bool)、大小。用户可以指定任意数量的属性作为部门的子项。所以部门结构可能是
RootDep
Dep1
Dep2
attribute1(string,12)
attribute2(int,10)
Dep3
Dep31
Dep32
Dep321
Dep4
Dep41
attribute4(bool,size not applicable)
attribute5(string,60)
attribute6(string,10)
attribute19(int, 5)
Dep5
我需要将此层次结构保存在数据库中。稍后,用户还可以为具有子属性的部门 Dep2 和 Dep41 添加数据。所以我想我需要在用户添加带有属性的部门时为部门动态生成表格。
用户还可以修改结构。例如,添加新部门/属性,删除部门/属性,重命名部门名称,属性名称。用户还可以修改为具有子属性的任何部门输入的记录。
请让我知道为此目的设计数据库的最佳方法。