想问一下你对这些数据库模式的看法。 您认为哪个更优选,请告诉我原因?
选项1:
表名:居民
id |名字| street_id
1 |彼得| 1
1 |约翰| 1
表名:Streets
id |名称
1 | Rock St。
2 | Green St。
选项2:
表名:居民
id |名字|街
1 |彼得| Rock St。
1 |约翰| Rock St。
答案 0 :(得分:0)
这取决于。 (这总是取决于!: - )
选项1的优势在于,如果您需要更改“Rock St.”的名称到“Rock Rd。”那么你只需要更改Streets
表中的一行。如果您需要在选项2中更改街道的名称,则可能需要更改许多行。
选项2的优势在于您无需执行JOIN
查询即可获取道路名称以及居民姓名。通常,通过其主键执行JOIN
查找街道并不是一个很大的成本,但是一些应用程序对性能优化有如此高的要求,以至于他们试图消除连接。但老实说,没有多少应用程序如此敏感,以至于他们不能偶尔做JOIN
。