当前位置: 首页 > 面试题库 >

VARCHAR作为数据库中的外键/主键是好是坏?

闽阳州
2023-03-14
问题内容

如果我使用ID nr:s代替VARCHARS作为外键会更好吗?最好使用VARCHARS的ID nr:s istead作为主键吗?ID nr是指INT!

这就是我现在所拥有的:

category table:
cat_id ( INT ) (PK)
cat_name (VARCHAR)

category options table:
option_id ( INT ) (PK)
car_id ( INT ) (FK)
option_name ( VARCHAR )

我可能已经想到了:

category table:
cat_name (VARCHAR) (PK)

category options table:
cat_name ( VARCHAR ) (FK)
option_name ( VARCHAR ) ( PK )

还是我在这里认为完全错误?


问题答案:

VARCHAR用于任何KEY的问题在于它们可以保留WHITE
SPACE。空格由任何无法在屏幕上读取的字符组成,例如空格标签,回车符等。当您开始追查为什么表最后不返回带有多余空格的记录时,使用VARCHAR作为键会使您的生活变得困难他们的钥匙。

当然,你 CAN 使用VARCHAR,但你必须要非常小心的输入和输出。它们还会占用更多空间,并且在执行查询时可能会变慢。

整数类型有一个由10个有效字符组成的小列表,即 0,1,2,3,4,5,6,7,8,9 。它们是用作键的更好的解决方案。

如果您想拥有快速查找的优点,则可以始终使用基于整数的键并将VARCHAR用作UNIQUE值。



 类似资料:
  • 假设您有一个表,如下所示: 可以看到列是表的主键和外键。是的,MySQL成功生成了这个表。 问题很简单,我将如何在JPA实体中映射这一点?我是否应该有映射到列的1个id和连接列的另一个字段?欢迎提出建议。

  • 整个想法是制作一个网站来对来自全国所有城市和学校的教师进行评分。当用户进入网站时,他将有一个选择城市的选项。选择城市后,用户有机会选择在该城市可用的学校。选择学校后,教师列表就会出现。 我想制作城市、学校和教师的表格。城市将城市名称和CID作为主键。学校应该将学校名称SID作为主键,CID作为外键。最后,教师表将有教师的姓名、教师的ID CID和SID作为外键。 所以我的问题是:学校是否有可能在选

  • 本文向大家介绍什么是主键?什么是外键?相关面试题,主要包含被问及什么是主键?什么是外键?时的应答技巧和注意事项,需要的朋友参考一下 主键是表格里的(一个或多个)字段,只用来定义表格里的行;主键里的值总是唯一的。外键是一个用来建立两个表格之间关系的约束。这种关系一般都涉及一个表格里的主键字段与另外一个表格(尽管可能是同一个表格)里的一系列相连的字段。那么这些相连的字段就是外键。

  • 如何使用hibernate注释实现下表? 当前代码为:(为简洁起见,已删除) 使用者 社交网络 SocialProfile公司 显然我的代码现在不能正常工作。有人能解释一下吗?

  • 本文向大家介绍数据库中主键和外键之间的区别,包括了数据库中主键和外键之间的区别的使用技巧和注意事项,需要的朋友参考一下 在关系数据库中,键是维护两个表之间的关系或从表中唯一标识数据的最重要元素。主键用于唯一地标识数据,因此两行不能具有相同的主键。不能为空。 另一方面,外键用于维护两个表之间的关系。一个表的主表充当另一个表中的伪造键。表中的外键强制引用完整性。该表中可以有多个。 序号 键 首要的关键

  • 我有两张桌子: 用户(用户名、密码) 配置文件(profileId,gender,dateofbirding,...) 目前我正在使用这种方法:每个Profile记录都有一个名为“userid”的字段作为外键,它链接到用户表。当用户注册时,他的配置文件记录将自动创建。 我对我朋友的建议感到困惑:将“userid”字段作为外部和主键,并删除“profileid”字段。哪种方法更好?