如何在程序中实现数据完整性与用户友好的双赢? 级联删除,个人认为不太可取,因为有很多的东西,是不允许这样的!而实际开发中也很少的用“级联删除”,没有更好的方式吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这种情况往往是用户不想看到了,但数据库中还必须或有必要保存的数据做假删除就可以的 建一个逻辑删除标记,可以逻辑删除,也可以物理删除,让用户选 CREATE TABLE [学生信息] ( [学生信息ID] [int] IDENTITY (1, 1) NOT NULL , [学号] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL , [姓名] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL , CONSTRAINT [PK_学生信息] PRIMARY KEY CLUSTERED ( [学生信息ID] ) ON [PRIMARY] ) ON [PRIMARY]GOCREATE TABLE [学生日常管理] ( [学生日常管理ID] [int] NOT NULL , [日常记录] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL , [日常类型ID] [int] NOT NULL , [学生信息ID] [int] NOT NULL , CONSTRAINT [PK_学生日常管理] PRIMARY KEY CLUSTERED ( [学生日常管理ID] ) ON [PRIMARY] , CONSTRAINT [FK_学生日常管理_学生日常类型] FOREIGN KEY ( [日常类型ID] ) REFERENCES [学生日常类型] ( [日常类型ID] ), CONSTRAINT [FK_学生日常管理_学生信息] FOREIGN KEY ( [学生信息ID] ) REFERENCES [学生信息] ( [学生信息ID] )) ON [PRIMARY]GOCREATE TABLE [学生日常类型] ( [日常类型ID] [int] NOT NULL , [类型名称] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL , [违规扣分] [float] NOT NULL , CONSTRAINT [PK_学生日常类型] PRIMARY KEY CLUSTERED ( [日常类型ID] ) ON [PRIMARY] ) ON [PRIMARY]GO对于上面三个表如果要删除“学生日常类型”,而此类型在“学生日常管理”中已经有了外键约束,在这里可以做假删除,但这样如果将来“学生日常管理”和对应的“学生信息”都删除时,在写一个方法,把他们从数据库中去掉吗?感觉这样下去,数据库会增加很多本来无用的数据! 求一SQL语句 大家看看这个代码如何写? 分区视图创建为什么不能更新记录? sqlserver count,order by 查询慢 sql语言中update语句的组合查询 关于Sql的题 很急的!!欢迎来高分散 客户端如何通过代理服务器访问外网sql数据库? 成品库的先进先出算法 我安装sql2000个人版式出错,怎么办? 这个怎么写 带有自动编号的记录复制问题 存储过程问题?
可以逻辑删除,也可以物理删除,让用户选
[学生信息ID] [int] IDENTITY (1, 1) NOT NULL ,
[学号] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[姓名] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
CONSTRAINT [PK_学生信息] PRIMARY KEY CLUSTERED
(
[学生信息ID]
) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE TABLE [学生日常管理] (
[学生日常管理ID] [int] NOT NULL ,
[日常记录] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[日常类型ID] [int] NOT NULL ,
[学生信息ID] [int] NOT NULL ,
CONSTRAINT [PK_学生日常管理] PRIMARY KEY CLUSTERED
(
[学生日常管理ID]
) ON [PRIMARY] ,
CONSTRAINT [FK_学生日常管理_学生日常类型] FOREIGN KEY
(
[日常类型ID]
) REFERENCES [学生日常类型] (
[日常类型ID]
),
CONSTRAINT [FK_学生日常管理_学生信息] FOREIGN KEY
(
[学生信息ID]
) REFERENCES [学生信息] (
[学生信息ID]
)
) ON [PRIMARY]
GO
CREATE TABLE [学生日常类型] (
[日常类型ID] [int] NOT NULL ,
[类型名称] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[违规扣分] [float] NOT NULL ,
CONSTRAINT [PK_学生日常类型] PRIMARY KEY CLUSTERED
(
[日常类型ID]
) ON [PRIMARY]
) ON [PRIMARY]
GO对于上面三个表如果要删除“学生日常类型”,而此类型在“学生日常管理”中已经有了外键约束,在这里可以做假删除,但这样如果将来“学生日常管理”和对应的“学生信息”都删除时,在写一个方法,把他们从数据库中去掉吗?
感觉这样下去,数据库会增加很多本来无用的数据!