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

MS SQL Server交叉表约束

苏凯
2023-03-14
问题内容

我有三个表:

1)应用程序(AppId,名称)
2)屏幕(ScreenId,名称)
3)关系(AppId,ScreenId)

现在,我想对相关表施加一些限制:可以将同一屏幕分配给多个应用程序,但是不能将两个具有相同名称的屏幕分配给同一应用程序

我知道我可以将Screen.Name添加到关系表中,然后在AppId和Screen.Name上创建PK,但是我不希望这样的解决方案,因为Screen.Name可能会发生变化。

为了达到这种限制,我还需要其他哪些选择?


问题答案:

您可以基于和表创建索引视图,Relation并在其中Screen应用唯一约束。

create view DRI_UniqueScreens
with SCHEMABINDING
as
    select r.AppId,s.Name
    from
       [Schema].Relation r
         inner join
       [Schema].Screen s
         on
            r.ScreenId = s.ScreenId
GO
CREATE UNIQUE CLUSTERED INDEX IX_DRI_UniqueScreens
    on DRI_UniqueScreens (AppId,Name)


 类似资料:
  • 问题内容: 以我有一个表的示例为例,该表包含大学课程,一个表包含学生。一堂课有很多学生,一个学生只能上一堂课。(一对多关系)。如果我在其中有一列存储了一个班级的学生总数,那感觉它应该违反了3NF。但是依赖关系在单独的表中。这种依赖关系叫做什么?我们可以说这违反了3NF吗?因为从某种意义上说,它具有违反3NF的所有问题。我想知道这是否是一个相关案例。 问题答案: TL; DR 但是依赖关系在单独的表

  • 交叉表图表也称为文本表,以文本形式显示数据。 交叉表图表采用一个或多个维度以及一个或多个度量。此图表还可以显示度量字段值的不同计算,例如总百分比,运行总计等。 例如,如果要查找每个区域中每个细分的销售数量,请考虑数据源:Sample-Superstore。要使用下面的可用订单日期显示每年的数据,请参阅创建交叉表图表的一些步骤。 第1步:将维度订单日期拖到列架中。 第2步:此外,将维度Region和

  • 主要内容:交叉表属性,JasperReports 交叉表的示例交叉表(cross-tabulation)报表是包含以表格形式跨行和列排列数据的表格的报表。交叉表对象用于在主报表中插入交叉表报表。交叉表可用于任何级别的数据(名义、有序、区间或比率),并且通常以动态表的形式显示包含在报表变量中的汇总数据。变量用于显示汇总数据,例如总和、计数、平均值。 交叉表属性 JRXML 元素<crosstab> 用于在报表中插入交叉表。 属性 以下是 <crosstab>

  • 其实思想可以按照从尾开始比较两个链表,如果相交,则从尾开始必然一致,只要从尾开始比较,直至不一致的地方即为交叉点,如图所示 # 使用a,b两个list来模拟链表,可以看出交叉点是 7这个节点 a = [1,2,3,7,9,1,5] b = [4,5,7,9,1,5] for i in range(1,min(len(a),len(b))): if i==1 and (a[-1] != b[-

  • 问题内容: 我正在使用SQL Server 2008,并且希望将数据转换为: 资料集: 所需结果: 目前,我正在执行以下操作,然后将所需的列粘贴到Excel中: 但是,并非所有匹配的行都不能仅仅并排击打表。对于没有Result的列,我希望显示NULL来填充行以使它们都具有相同数量的记录。 我查了一下PIVOT,但我认为这在这里不起作用…这种数据转换称为什么类型?我不认为这是交叉表… 谢谢! 问题答

  • 问题内容: 如何在交叉表中添加总计的另一行和一列? 我以为我会添加新列(通过对行求和而获得) 但这不起作用。 问题答案: 这是因为“类似属性”的列访问不适用于整数列名。使用标准索引: 请参阅文档本节末尾的警告:http : //pandas.pydata.org/pandas- docs/stable/indexing.html#attribute-access 当您要使用行时,可以使用: 在这种