【发布时间】:2018-02-13 00:55:25
【问题描述】:
我现在有点头疼,还没有找到最终的解决方案。所以我希望我能找到一些关于如何在架构层面解决这个问题的交流或帮助。
我目前面临以下情况: 我想编写一个 Web 应用程序(我用 Java 做,但这与解决方案并不真正相关,因为这目前是一个更高级别的问题),其中存在这种关系:
Event --1:n--> Team --1:n--> Participant
含义:我有一个活动,其中将有多个团队,有多个参与者。到目前为止一切顺利 - 这将是 SQL 数据库中的一个简单关系。
但是还有一个目录树,表示文件结构中的相同关系:
+--event1
| +--team1
| | +--participant1
| | +--participant2
| | +--participant3
| +--team2
| | +--participant4
| +--team3
+--event2
| +--team4
...
(我想,你明白了) 因此,在每个参与者的目录中都有许多文件,这些文件通过文件系统复制到该目录中。每当文件系统上有一个目录时,它应该连接到数据库中的相应条目,其中有一些附加数据,应该与 web-GUI 中的文件一起显示。没有定义,首先会有什么(数据库入口或目录),因为这是由不同的用户操作的。
现在有几件事要记住,这对我来说有点道理:
- 当目录名称更改(事件、团队或参与者)时,它仍应与数据库中的同一条目相关(因为可能存在其他实体,例如仍与参与者相关)
- 可能会删除任何事件/团队/参与者的目录 - 数据库中的数据应该保留。但是 - 如果稍后再次创建具有相同名称的新目录并且事件被“关闭”,则该目录将指向新的数据库条目(例如新事件)。如果事件仍处于活动状态,则创建同名目录应映射到数据库中先前分配的条目。
- 理想情况下,目录的创建已经导致相应数据库条目的创建。
- 还应该可以在 web-GUI 中创建事件/团队/参与者,然后自动在文件系统上创建相应的目录。
我希望我的描述足以理解这个场景。我已经想到了一些事情,但他们并没有真正说服自己成为一个强大的解决方案。所以希望你们中的一个人已经对此有所了解。我对任何可能有助于解决这个问题的技术或框架持开放态度。
我期待您的想法和愉快的讨论!
感谢您的帮助!
【问题讨论】:
标签: architecture modeling software-design data-synchronization