当我在MySQL Workbench
中创建ER图时,软件会自动创建多个外键列,而我希望只有一个外键:
在图像中,您可以看到以下带有多列的外键:
- 表市
fk_city_state1
:国家_国家_id +国家_国家_id - 桌区
fk_district_city1
:city_city_id + city_state_id + city_state_country_id - 表街道中的
fk_street_district1
:district_district_id + district_city_city_id + district_city_state_id + district_city_state_country_country_id
从this post中我了解到Workbench
这样做是为了索引的目的。
当我在pgAdmin 4
中创建这样一个ER图时,这些额外的外键列不会被添加。这是关于pgAdmin 4
工具有多先进,还是它在PostgreSQL
中不是一个很好的实践?换句话说:添加这些额外的列作为外键并在其上放置Auto FK Index
是个好主意吗?
1条答案
按热度按时间disho6za1#
根据我的评论,我找到了答案。从信息的Angular 来看,额外的FK列是冗余的。例如,给定街道,可以直接确定该地区,并且可以从该地区确定城市。
额外的列和索引占用更多的空间,对插入性能有负面影响,但可能会加快数据检索的速度,这应该进行测试。