我们正在构建具有灵活组织结构的多租户应用
我认为主要的组织结构可以是这样的自引用表:
+-------+-------------+----------+
| OrgId | OrgName | ParentId |
+-------+-------------+----------+
| 1 | Runners | NULL |
+-------+-------------+----------+
| 2 | FastRunners | 1 |
+-------+-------------+----------+
一个版本表,其中的结构可以随时更改,FiscalYear
字段基本上只允许将来的开发人员轻松查询报表等。将此称为版本表是否正确?还是细节?:
+-----------+-----------+------------+------------+
| VersionId | ValidFrom | ValidTo | FiscalYear |
+-----------+-----------+------------+------------+
| 1 | 2019-1-14 | 2019-6-31 | 2018 |
+-----------+-----------+------------+------------+
| 2 | 2019-1-14 | 2019-6-31 | 2018 |
+-----------+-----------+------------+------------+
| 3 | 2019-7-1 | 9999-12-31 | 2019 |
+-----------+-----------+------------+------------+
| 4 | 2019-7-1 | 9999-12-31 | 2019 |
+-----------+-----------+------------+------------+
还有一个映射表,以便版本/明细表和主表不会紧密地绑在一起,以便于插入和更新:
+-----------+-------+
| VersionId | OrgId |
+-----------+-------+
| 1 | 1 |
+-----------+-------+
| 2 | 2 |
+-----------+-------+
| 3 | 1 |
+-----------+-------+
| 4 | 2 |
+-----------+-------+
您是否建议对此结构进行任何更改?是否有针对这种结构的警告?考虑到灵活的组织结构,我在自引用表方面没有太多经验,因此可以提供任何帮助。谢谢!