我目前正在计划开发音乐流应用程序。我想知道在服务器上的表格中作为主键会更好。 ID int或唯一字符串。数据库设计Primay Key,ID vs字符串
方法1:
歌曲表: SongID(INT),名称(字符串),*艺术家**(字符串),长度(INT),*相册**(串)
流派表 类型(串),名称(字符串)
SongGenre: *** SongID ****(INT),***戈NRE ****(字符串)
方法2
歌曲表: SongID(INT),名称(字符串),* ArtistID **(INT),长度(INT) * ** ALBUMID(INT)
流派表 GenreID(INT),名称(字符串)
SongGenre: *** SongID ****( INT),*** GenreID ****(INT)
重点:大胆 =主键,*字段** =外键
我目前正在设计使用方法2,因为我相信它将加快查找性能,并且占用更少的空间,因为int需要的空间少于字符串。
是否有任何理由,这是不是一个好主意?有什么我应该知道的?
+1绝对。一个ID应该(几乎总是)是一个INT - 其他任何东西都没有什么意义(除了少数选择的情况) – 2010-03-31 09:39:31
我会补充说,你应该在类型名称上加一个唯一索引以防止有名为“布鲁斯”的三种流派。如果存在的话,始终在自然键上添加一个唯一索引。 – HLGEM 2010-03-31 17:05:38
-1:这些是做出设计决定的错误原因。根据设计是否正确进行设计决策。然后,如果有性能问题,请根据需要进行调整和重新设计。 – 2010-04-16 18:10:30