gpt4 book ai didi

mysql - 为性别使用新表或将其添加为人员表中的字段

转载 作者:行者123 更新时间:2023-11-29 04:45:56 27 4
gpt4 key购买 nike

所以基本上哪个在性能和空间方面更好:

idPerson  Name  Gender   Age
1 John Male 19
2 Anna Female 22

或者这样:

idPerson  Name  Age  idGender
1 John 19 1
2 Anna 22 2

idGender Gender
1 Male
2 Female

我认为第二个更好,因为每次重复男/女会占用更多空间,但我认为它可能会因关系而变慢。我错了?有更好的方法吗?

最佳答案

which is better in terms of performance and space

计算机科学中的大多数决策通常都是时间和空间之间的权衡。

在您的情况下,第一个解决方案(在表中存储最多 6 个字符的字符串)最终会使用更多空间,但会导致该字符串直接可用于表上的查询;而第二个解决方案(存储一个整数表示,其含义可以在第二个表中查找)将使用更少的空间,但需要更多的工作来发现字符串(尽管它确实可以通过定义 foreign key constraint 来限制可能的值) .

另一种方法可能是使用 MySQL 的 ENUM类型,它使您能够处理字符串,同时有效地“在幕后”仅存储一个整数。您不妨考虑 Chris Komlenic 的文章 8 Reasons Why MySQL's ENUM Data Type Is Evil在决定采取这一行动之前。

关于mysql - 为性别使用新表或将其添加为人员表中的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18941742/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com