Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 找到连接表的有效方法_Database_Sql Server 2008_Database Design_Join_Relational Database - Fatal编程技术网

Database 找到连接表的有效方法

Database 找到连接表的有效方法,database,sql-server-2008,database-design,join,relational-database,Database,Sql Server 2008,Database Design,Join,Relational Database,问题是: 我们有3个表(MS SQL 2008 R2): 表1胶卷(带胶卷的表) 表2歌曲(带歌曲的表格) 表3标题 因为“电影”和“歌曲”可以包含多个标题(我有许多不同语言的标题),所以我想将所有标题保留在单独的“标题”表中。表电影和歌曲中的主键基于增量为+1的[int]标识规范 例如:我们可以有一部ID为3的电影和一首歌 如何将表格“标题”与“电影”和“歌曲”连接起来 另外,我试图通过添加一个带有公式的新列[idKey]来创建一个独特的键 对于电影来说,它是(CONVERT([nvarcha

问题是: 我们有3个表(MS SQL 2008 R2):

表1胶卷(带胶卷的表)

表2歌曲(带歌曲的表格)

表3标题

因为“电影”和“歌曲”可以包含多个标题(我有许多不同语言的标题),所以我想将所有标题保留在单独的“标题”表中。表电影和歌曲中的主键基于增量为+1的[int]标识规范

例如:我们可以有一部ID为3的电影和一首歌

如何将表格“标题”与“电影”和“歌曲”连接起来

另外,我试图通过添加一个带有公式的新列[idKey]来创建一个独特的键

对于电影来说,它是
(CONVERT([nvarchar](10),[ID],(0))+'f')

对于歌曲,它是
(CONVERT([nvarchar](10),[ID],(0))+'s')

其中[ID]是他们的身份规范
但我无法将此列标记为主键

即使在这三个表之间没有外键约束,也可以通过连接三个表来获取数据

 SELECT title.*, film.*,songs.* 
 FROM title t JOIN film f
    ON t.title_name = f.title_name
 JOIN songs s
    ON t.title_name = s.title_name
重点是至少有两个表应该有一个常规列