Sql 如何跟踪列更新?
我正在使用SQL Server存储用户上传的歌曲 每首歌曲都有一个id(简单的自动递增编号)和一个名称 我想使用URL重写来查询一些歌曲,如下所示: 问题是,我还想让用户更改他们的歌曲名称,但仍然使用旧的URLSql 如何跟踪列更新?,sql,sql-server,Sql,Sql Server,我正在使用SQL Server存储用户上传的歌曲 每首歌曲都有一个id(简单的自动递增编号)和一个名称 我想使用URL重写来查询一些歌曲,如下所示: 问题是,我还想让用户更改他们的歌曲名称,但仍然使用旧的URL 我想创建另一个包含旧名称的表,然后在两个表中检查一些歌曲名称,这是一个好的解决方案吗?更好的方法可能是创建一个包含URL及其关联歌曲的URL表: SongID: URL: 1 song_name 1 song_name_change 2
我想创建另一个包含旧名称的表,然后在两个表中检查一些歌曲名称,这是一个好的解决方案吗?更好的方法可能是创建一个包含URL及其关联歌曲的URL表:
SongID: URL:
1 song_name
1 song_name_change
2 other_song_title
这种方法将:
除了现有的
歌曲
表外,我还将:
- 创建一个包含列的表
alias
-将包含歌曲名,包括原始歌曲名和修改歌曲名别名
-歌曲的id,参考target
表歌曲
- (可选)将列
添加到main_alias
表中;它将引用主别名(即上次编辑的别名),以便您可以使用旧别名重定向用户或通过其id转到歌曲songs
-按id查找歌曲+将URL重写为URL/[song\u id]
主别名
-按别名查找歌曲+将URL重写为URL/old_song\u name
主别名
-同上URL/new\u song\u name
-同上URL/甚至更新的歌曲名
总之,您可以有无限数量的名称指向同一首歌曲创建带有字段的表
歌曲名
- 身份证
- 歌曲id(歌曲
表的键)
- 名称(歌曲名称,可能是唯一的)
- 创建日期(创建此名称的日期时间)
songs
表中找到歌曲。实际歌曲名称将是song\u names
表中的歌曲名称,带有给定的song\u id
和最近的creation\u date
为什么不添加一个(原始)URL列?如果用户在坚持使用自己喜欢的歌曲名称之前将歌曲名称更改了100次,您想让100个URL访问该歌曲吗?