相关疑难解决方法(0)

存储与计算聚合值

是否有任何指导方针或经验法则来确定何时存储聚合值以及何时动态计算它们?

例如,假设我有用户可以评分的小部件(请参阅下面的架构)。每次我显示一个小部件时,我都可以从Ratings表格中计算出平均用户评分。或者,我可以将平均评分存储在Widget表格中。这将使我不必在每次显示小部件时计算评分,但是每次用户对小部件进行评分时我都必须重新计算平均评分。

Ratings       Widgets
---------     -------
widget_id     widget_id
user_id       name              
rating        avg_rating  <--- The column in question
Run Code Online (Sandbox Code Playgroud)

mysql database-design aggregate

104
推荐指数
2
解决办法
3万
查看次数

规范化应该走多远?

我在数据库中有相当数量的数据。我有格式良好的表格和它们之间的良好关系,我的数据中有一些冗余。但是我应该在规范化方面走多远?过多的标准化是否存在性能缺陷?

performance normalization learning

33
推荐指数
3
解决办法
8759
查看次数

在预订系统中保持参照完整性

我正在 Microsoft SQL Server 2005 上开发企业培训预订系统的第二个版本。

我有 3 个表(针对这个问题进行了简化)。

表 1 - CourseSize- 这决定了能够预订会话的最大参与者数量。
表 2 - 课程 - 要提供的课程、日期/时间和对 CourseSize 记录的引用。
表 3 - 预订- 参考相关会话记录进行预订的人。

SQL如下-

CREATE TABLE [dbo].[CourseSize]
(
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [CourseSizeMax] [tinyint] NOT NULL,
    CONSTRAINT [PK_CourseSize] PRIMARY KEY CLUSTERED ([ID] ASC)
);

CREATE TABLE [dbo].[Session]
(
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [CourseSizeID] [int] NOT NULL,
    CONSTRAINT [PK_Session] PRIMARY KEY CLUSTERED ([ID] ASC)
);
GO

ALTER TABLE [dbo].[Session] WITH CHECK …
Run Code Online (Sandbox Code Playgroud)

sql-server-2005 database-design constraint

5
推荐指数
2
解决办法
1112
查看次数

如何避免检查约束中的 IX 死锁

我有以下情况,我有一个带有主键的表和一个约束,我不能有具有特定要求的行。出于演示目的,这里我有一个不允许在 N 列中插入重复值的约束。在实际情况下,它使用其他表的外键和附加过滤器检查多个列,因此我不能放置简单的唯一约束。所以这里是例子

create table dbo.T1 (
    Id int not null identity (1,1),
    N int not null
)

alter table dbo.T1
add primary key (Id);

go

create function [dbo].[fn_CheckN](@id int, @n int)
returns int
as 
begin
    if exists (select * from dbo.T1 t where t.n = @n and t.Id != @id)
        return 0

    return 1
end

go

alter table [dbo].T1 with nocheck add  constraint [CK_T1_Valid] check  (([dbo].[fn_CheckN]([Id],[N]) = 1))
go

alter table [dbo].T1 check constraint [CK_T1_Valid]
go
Run Code Online (Sandbox Code Playgroud)

当我同时运行时

insert into …
Run Code Online (Sandbox Code Playgroud)

sql-server deadlock

3
推荐指数
1
解决办法
206
查看次数