我有一个带有 SQL Server 后端的 asp.net-mvc 网站。我正在简化我的情况以突出和隔离问题。我在数据库中有 3 个表
- 文章表(id、名称、内容)
- 位置表(id,名称)
- ArticleLocation 表(id、文章 ID、位置 ID)
在我的网站上,当您创建一篇文章时,您可以从多选列表框中选择您希望将该文章发送到的位置。
大约有 25 个位置,所以我正在讨论添加一个名为“全局”的新位置作为快捷方式,而不是让人们从列表框中选择 25 个不同的项目。我仍然可以将其作为前端的捷径,但现在我正在讨论是否有利于将其流向后端。
因此,如果我有一篇全球性的文章,而不是在 ArticleLocation 表中有 25 条记录,我将只有一条,然后我会在前端做一些技巧来选择所有项目。我试图弄清楚这是否是一个非常糟糕的主意。
我能想到的事情让我感到紧张:
如果我创建一篇文章并选择全局但在未来最后添加 3 个新位置怎么办。如果没有这个全局设置,这 3 个位置将无法获取文章,但以新的方式,它们会。我不确定什么更好,因为第二件事实际上可能是您想要的,但它不太明确。
我对报告有要求,我想按所有全球文章进行过滤。想象一下,我需要一个 article.IsGlobal() 方法。现在我想我可以说如果一个项目的位置数与位置表中的所有记录相同,我可以将其翻译为被认为是全球性的,但由于人们可以添加新位置,我觉得这种方法有点不稳定.
有没有人对在真正反映“所有记录”的参考数据表中创建记录这一困境有任何建议。感谢任何建议