最近,我与其他一些开发人员讨论了表格中有多少列,或者模型上有太多属性是代码异味。有人争辩说,拥有太多 Attribute 的 Model 做的事情太多,应该拆分。但是如果模型实际上需要这些属性呢?
让我以一张users
桌子为例。
一个用户可以有
first_name
, last_name
, street_name
, city
, state
, age
, 等等。根据论证,我假设street_name
,city
并且state
应该被移动到不同的表中。我同意以这种方式将相关数据分组在一起,但如果应用程序也在用他的地址查询用户,那会不会是一个更昂贵的操作,因为它们现在在 2 个表中?
那么对具有很多属性的表进行建模的正确方法是什么?(我们是否还应该考虑这些情况:当 1. 行数将减少 2. 行数将很大时)