这是我们制作的网站常见的任务,但我不确定设计课程的最佳方式。作为敏捷开发的新手,我想确保我避免养成坏习惯。
我正在开发一个网站,其中包含多个国家/地区的网页。 CMS允许用户更改每个国家/地区页面的内容(标题,副本等)。我们被问到CMS是否可以管理时间表(可下载的PDF)。
假设我有一个Country类和一个Timetable类什么是最好的(从敏捷的角度来看)?
public List<Timetable> Timetables
public Country AssignedCountry
当然,最好的方法取决于信息的使用方式。如上所述,每个国家/地区都有一个页面显示该国家/地区的时间表。但是,还有一个时间表页面列出了所有时间表,理想情况下,它显示了他们所在的国家。
使用选项1意味着国家/地区页面可以轻松列出其时间表,但时间表页面上的每个时间表都没有参考其分配的国家/地区。
选项2意味着时间表页面更容易,因为我可以列出所有时间表并显示相关国家/地区。但是,国家页面更加尴尬,因为每个国家都不知道它的时间表,因此需要一些其他方法来获得相关的时间表。
选项3? 由于时间表实际上不是一个国家的财产,同样,国家不是PDF文件的属性,我想我可能最好创建一个静态实用程序类(工厂?),其中包含我可以调用的方法来获取我需要的信息 - 时间表按国家或国家的时间表。数据库中的国家/时间表关系是多对多的,因此这似乎是更合理的解决方案。
我们的客户通常希望为CMS添加更多功能,通常情况下决定事情的相关性并不是问题,但这种事情让我感到困扰。
我是不是太复杂了?我缺少一个简单的经验法则或技术吗?
答案 0 :(得分:0)
我同意选项1和选项2不适合您。 可能最好的选择是使用数据库并使用第三类阅读您需要的内容。
当然,您也可以同时使用选项1和2。
在国家/地区,您知道要显示的时间表,在时间表中您知道哪个国家/地区可以显示它。
此外,您可以强制使用这两个选项中的一个,但这样做至少需要一个列表中的国家/地区列表,当您有一个时间表时,您循环所有国家/地区询问“isValidTimetable”然后您拥有所有可以显示时间表的国家。
但这一切都取决于你有多少物品,你没有告诉我们。
答案 1 :(得分:0)
归结为几个简单的问题......
如果每个时间表必须与一个国家/地区相关联,我很想将国家/地区ID放在时间表对象中,并从带有连接的sql中进行选择以进行显示。如果答案不同,您应该考虑这些对象的完整用例,并且应该为您定义答案。