我应该将相关列移动到新的 table 中吗?

should I move related columns in a new table?

我有一个客户 table 引用了一个地址 - 一对一的关系,有几个字段。目前没有其他 table 引用地址。因此,将所有字段存储在一个 table 下是否更有意义,即使它可以被封装,还是我应该创建一个单独的地址 table 来存储地址字段。 advantages/disadvantages 是什么?

一般来说,这取决于你的要求。

如果可以更新某些字段值,但实体应保持不变(应由相同的键引用),那么您需要一个单独的 table。例如,需要维护有效地址的数据库,客户应该 select 列表中的预定义地址而不是手动输入,或者需要提供一些基于地址位置的特定行为等等。

在您的情况下,这样做只会给模型增加绝对不必要的复杂性。

只有一个 table 并使用 OOP 语言,您仍然可以将客户地址封装在单独的对象中(所谓的 Value Object 模式)。