阅读此问题后,我了解到非规范化不是简单的解决方案。这个案子怎么办?
我有新闻文章,其中包含网站文章将发布到的列表。后者可以通过表和多对多关系(我认为通过交叉表)以标准化方式表示。但简单的解决方案是只为站点文章将被发布到(publish_to_site_1、publish_to_site_2 等)添加一堆布尔值。假设站点是:
- 数量少
- 不会随着时间而改变
- 本身没有字段,除了名称
这仍然是一个可怕的想法吗?多对多的关系似乎有些麻烦,但我以前在这种情况下做过(而且看起来很麻烦)。
注意:我在 Rails 中这样做,它并不那么痛苦。另一方面,元编程使这样的事情变得微不足道
(1..5).each { |site| do_something(article["publish_to_site_#{site}".to_symbol]) }