这是我们制作的那种网站常见的任务,但我不确定设计课程的最佳方式。作为敏捷开发的新手,我想确保避免养成坏习惯。
我正在开发一个包含多个国家/地区的页面的网站。CMS 允许用户更改每个国家/地区页面的内容(标题、副本等)。我们被询问是否可以通过 CMS 管理时间表(可下载的 PDF)。
假设我有一个 Country 课程和一个 Timetable 课程,什么是最好的(从敏捷的角度来看)?
- 在国家类中创建一个属性:
public List<Timetable> Timetables
- 在 Timetable 类中创建一个属性:
public Country AssignedCountry
当然,什么是最好的取决于信息的使用方式。如前所述,每个国家/地区都有一个页面,将显示该国家/地区的时间表。但是,还有一个时间表页面,列出了所有时间表,理想情况下,显示了他们所在的国家/地区。
使用选项 1 意味着国家页面可以轻松列出它的时间表,但时间表页面上的每个时间表都没有参考它分配到的国家/地区。
选项 2 意味着时间表页面更容易,因为我可以列出所有时间表并显示相关国家/地区。然而,国家页面更尴尬,因为每个国家都不知道它的时间表,所以需要一些其他方法来获取相关的时间表。
选项 3?由于时间表并不是一个国家/地区的真正属性,同样,国家/地区也不是 PDF 文件的属性,我想我最好创建一个静态实用程序类(工厂?),其中包含我可以调用的方法来获取我需要的信息 - 按国家/地区的时间表或按时间表的国家/地区的时间表。数据库中的国家/时间表关系是多对多的,因此这似乎是更合乎逻辑的解决方案。
我们的客户通常希望向 CMS 添加更多功能,通常决定事物之间的关系不是问题,但这种事情让我感到厌烦。
我是不是把事情复杂化了?我缺少一个简单的经验法则或技术吗?