您应该在多少列处再制作一个 table?
At what number of columns should you make another table?
我有一个 table 几乎达到了 20 列。
我发现每一个都是必要的,因为它是一个 "project" table,并且该项目有一些列来指示诸如创建时间、更新时间、ID、启动者等信息,谁完成的,一些元数据,例如关键字,项目本身的内容,简短描述和其他一些东西。
我对我的 table 很满意,但后来我通过 Whosebug 浏览了一些问题,看到了诸如 "your table should never have more than 10 columns" 之类的内容和建议,如果它是在这种情况下,您应该将 table 分成较小的部分。
按照 Whosebug 的建议,我将我的 table 分成两个 table,但我发现操作起来更复杂。现在,当创建每个项目时,我必须创建两个新记录,每个记录对应 table。我必须处理创建任一记录的错误,这意味着如果第二个 table 上的记录创建失败,我必须执行 yet 另一个查询以回滚创造第一个记录。
数据检索和记录删除也变得更加复杂,因为现在我必须在两个 table 上完成。
我正在使用 Sails.js 框架,并尝试使用关联,但我发现它几乎相同,我仍然需要为每个 table 重复任务。
如果你的 table 变得那么大,真的值得把它分成小的吗?或者我应该只保留我的 20 列 table? 我的项目是新的,甚至没有在线,所以我不知道性能。我从不了解 associations/joins 或一般的数据库,因为我从不了解人们为什么这样做,那么,有什么好处?
保留您的 20 列 table,说实话,20 列并不多,因为如您所说,由谁(创建、编辑)和 ID 使用了 5 列。
设计数据库时还有其他考虑因素table,列数不应该是优先考虑的因素。当你遇到一些性能问题时,你可以考虑将它分成多个 table,但现在保留你的 table。转到40列,您仍然不应该在意。
那个说永远不会超过 10 的人要么是在谈论一些可以解决的性能问题,要么是一个特定的案例,它产生了影响,或者有一些奇怪的地方 "standards"。
但是你应该真正了解数据库设计,因为你会看到如何更好地设计你的 tables,但是现在 tables 有你想要的尽可能多的字段,只要你尊重一些 normalization rules
我认为您永远不想在数据库使用一段时间后更改 qour 架构。
想想 features/functions 您可能想要在功能中实现,并据此决定是否要有 40 列。
我喜欢尽可能紧凑,所以我有很多外键和很多小表,因为不写或保存了两次。
我有一个 table 几乎达到了 20 列。
我发现每一个都是必要的,因为它是一个 "project" table,并且该项目有一些列来指示诸如创建时间、更新时间、ID、启动者等信息,谁完成的,一些元数据,例如关键字,项目本身的内容,简短描述和其他一些东西。
我对我的 table 很满意,但后来我通过 Whosebug 浏览了一些问题,看到了诸如 "your table should never have more than 10 columns" 之类的内容和建议,如果它是在这种情况下,您应该将 table 分成较小的部分。
按照 Whosebug 的建议,我将我的 table 分成两个 table,但我发现操作起来更复杂。现在,当创建每个项目时,我必须创建两个新记录,每个记录对应 table。我必须处理创建任一记录的错误,这意味着如果第二个 table 上的记录创建失败,我必须执行 yet 另一个查询以回滚创造第一个记录。 数据检索和记录删除也变得更加复杂,因为现在我必须在两个 table 上完成。
我正在使用 Sails.js 框架,并尝试使用关联,但我发现它几乎相同,我仍然需要为每个 table 重复任务。
如果你的 table 变得那么大,真的值得把它分成小的吗?或者我应该只保留我的 20 列 table? 我的项目是新的,甚至没有在线,所以我不知道性能。我从不了解 associations/joins 或一般的数据库,因为我从不了解人们为什么这样做,那么,有什么好处?
保留您的 20 列 table,说实话,20 列并不多,因为如您所说,由谁(创建、编辑)和 ID 使用了 5 列。
设计数据库时还有其他考虑因素table,列数不应该是优先考虑的因素。当你遇到一些性能问题时,你可以考虑将它分成多个 table,但现在保留你的 table。转到40列,您仍然不应该在意。
那个说永远不会超过 10 的人要么是在谈论一些可以解决的性能问题,要么是一个特定的案例,它产生了影响,或者有一些奇怪的地方 "standards"。
但是你应该真正了解数据库设计,因为你会看到如何更好地设计你的 tables,但是现在 tables 有你想要的尽可能多的字段,只要你尊重一些 normalization rules
我认为您永远不想在数据库使用一段时间后更改 qour 架构。
想想 features/functions 您可能想要在功能中实现,并据此决定是否要有 40 列。
我喜欢尽可能紧凑,所以我有很多外键和很多小表,因为不写或保存了两次。