如果我使用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值。