0

这是我们制作的那种网站常见的任务,但我不确定设计课程的最佳方式。作为敏捷开发的新手,我想确保避免养成坏习惯。

我正在开发一个包含多个国家/地区的页面的网站。CMS 允许用户更改每个国家/地区页面的内容(标题、副本等)。我们被询问是否可以通过 CMS 管理时间表(可下载的 PDF)。

假设我有一个 Country 课程和一个 Timetable 课程,什么是最好的(从敏捷的角度来看)?

  1. 在国家类中创建一个属性:

public List<Timetable> Timetables

  1. 在 Timetable 类中创建一个属性:

public Country AssignedCountry

当然,什么是最好的取决于信息的使用方式。如前所述,每个国家/地区都有一个页面,将显示该国家/地区的时间表。但是,还有一个时间表页面,列出了所有时间表,理想情况下,显示了他们所在的国家/地区。

使用选项 1 意味着国家页面可以轻松列出它的时间表,但时间表页面上的每个时间表都没有参考它分配到的国家/地区。

选项 2 意味着时间表页面更容易,因为我可以列出所有时间表并显示相关国家/地区。然而,国家页面更尴尬,因为每个国家都不知道它的时间表,所以需要一些其他方法来获取相关的时间表。

选项 3?由于时间表并不是一个国家/地区的真正属性,同样,国家/地区也不是 PDF 文件的属性,我想我最好创建一个静态实用程序类(工厂?),其中包含我可以调用的方法来获取我需要的信息 - 按国家/地区的时间表或按时间表的国家/地区的时间表。数据库中的国家/时间表关系是多对多的,因此这似乎是更合乎逻辑的解决方案。

我们的客户通常希望向 CMS 添加更多功能,通常决定事物之间的关系不是问题,但这种事情让我感到厌烦。

我是不是把事情复杂化了?我缺少一个简单的经验法则或技术吗?

4

2 回答 2

0

我同意选项 1 和选项 2 不是最适合您的。最好的选择可能是使用数据库并使用第三类读取您需要的内容。

当然,您也可以同时使用选项 1 和 2。

在 Country 中,您知道要显示什么 Timetable,在 Timetable 中,您知道 Country 可以显示什么。

你也可以强制使用这两个选项之一,但这样做你至少需要一个列表中的国家列表,当你有一个时间表时,你会循环所有国家,询问“isValidTimetable”,然后你就拥有了所有国家可以显示时间表。

但这一切都取决于你有多少物品,你没有告诉我们的事情。

于 2012-10-10T11:43:03.440 回答
0

它归结为几个简单的问题......

  • 每个时间表是否仅适用于一个国家?
  • 每个时间表是否必须与一个国家/地区相关联,还是可以自由浮动?

如果每个时间表都必须与一个国家/地区相关联,我很想将国家/地区 ID 放在时间表对象中,然后从带有连接的 sql 中选择以进行显示。如果答案不同,您应该考虑这些对象的完整用例,这应该为您定义答案。

于 2012-10-10T11:44:47.667 回答