我正在为葡萄酒和其他酒精饮料的经销商开发一个网站。显然,每种葡萄酒都是在一个国家生产的,必须在 Wine table 中建模。但很多时候,一个葡萄酒也有一个产区(朗格多克、里奥哈、布戈涅等),这些产区当然与一个国家是亲子关系。存在以下选项:
- 只给葡萄酒表提供一个地区的参考问题是一些葡萄酒/威士忌没有提到一个地区,只提到一个国家
- 为酒桌提供 2 个单独的 FK 引用,分别指向 Country 和 Region 表。这引入了循环引用和冗余问题,因为国家和地区已经相关。
- 使用 Location 表和从 Wine 表到 Location 表的单个 FK 引用。Location 表实际上是一个地区或一个国家(甚至可能是一个城市),所以它有一个字段“location_type”和一个父 FK 字段,指的是它自己的 PK。对于顶级 Country 条目,父 ID 为空。这是我在互联网某处找到的示例。然而,它会使查询更加复杂。
这是一个已知问题,有什么建议吗?TIA,克拉斯