数据库管理员

希望提高数据库技能并向社区中的其他人学习的数据库专业人员的问答

2
视图是否需要自己的外键约束?
免责声明:我是程序员,而不是DBA,所以请耐心等待... 我有一种观点,我只是将2个实体映射在一起。我必须在几个不同的表之间进行联接才能得到: CREATE OR REPLACE VIEW V_SCREENING_GROUP_SITES AS ( SELECT SG.SCREENING_GROUP_ID, V.SITE_ID FROM SCREENING_GROUP SG, VISIT V, VISIT_DATE VD WHERE VD.VISIT_ID = V.VISIT_ID AND V.SCREENING_GROUP_ID = SG.SCREENING_GROUP_ID); 以上仅是上下文,请不要为此担心太多。我需要知道的是如何使新的V_SCREENING_GROUP_SITES视图中的字段(SCREENING_GROUP_ID和SITE_ID)充当SCREENING_GROUP和SITE表的外键。还是有关系吗? 如果是一张桌子,我会做: ALTER TABLE V_SCREENING_GROUP_SITES ADD CONSTRAINT FK_SCREENING_GROUP_ID FOREIGN KEY (SCREENING_GROUP_ID) REFERENCES SCREENING_GROUP.SCREENING_GROUP_ID; ... 但是,由于这种观点显然行不通。我找不到可用于设置FK的ALTER VIEW语法。我该怎么办? (这是一个MySQL数据库)

1
将加密的数据库还原到另一台服务器
我正在使用在SQLServer 2008上运行的产品。可以理解的是,提供该产品的公司不提供SQLServer支持。安装产品时,我指定了密码来加密数据库。我想运行该产品的另一个副本,以便在另一台服务器上进行测试。我已将数据库还原到另一台服务器,并将产品安装在另一台服务器上。安装后,我提供了相同的密码,然后从主服务器还原了备份。但是我收到错误消息: System.Data.SqlClient.SqlException: An error occurred during decryption. 从产品。我可以使用SQLServer Management Studio访问表。 我已经试过了: 在第一台服务器上: CREATE CERTIFICATE cert1 WITH SUBJECT = 'Certificate for my stuff' BACKUP CERTIFICATE cert1 TO FILE = 'd:\backup\cert1.dat' WITH PRIVATE KEY ( ENCRYPTION BY PASSWORD = 'mypassword', FILE = 'd:\backup\cert1_privatekey.dat' ) 在第二台服务器上: CREATE MASTER KEY ENCRYPTION BY PASSWORD …


2
如何在MySQL中找到列的中间值?
我只能想象使用两个数据库查询来执行此操作。第一个查找数据库中的行数,第二个查找ORDER BY我感兴趣的列上的一个,LIMIT X, 1其中X是行数的一半。 是否有一种简单的方法可以只执行一个查询? 现在,我在计算中使用了平均值,但我认为平均值会更好。值没有上限,并且从下方以0为界。 编辑:是的,我的意思是说“中位数”,但脑部有误并搜索了“均值”。我现在在stackoverflow找到了答案
10 mysql 

1
SQL Server死锁图-表,页或行锁定?
如果死锁图中的锁是表,页面或行级别,有什么方法可以解密?我从图表中获得了我需要的所有信息,包括隔离级别(2),但我也确实想知道这一点。 感谢任何能提供帮助的人!

4
SQL Server从另一个数据库重命名表
SQL Server中是否可以重命名另一个数据库中的表?在当前数据库中并将数据迁移到TEMP表中的另一个数据库,然后在该另一个数据库中重命名TEMP表时。我不想使用“ USE [database]”,因为数据库名称可能会在其他服务器上更改。 我在这里先向您的帮助表示感谢!

4
T-SQL-遍历表直到满足条件的最有效方法是什么
在中进行了编程任务T-SQL。 任务: 人们想进入电梯,每个人都有一定的体重。 排队等候的人的顺序由立柱转弯确定。 电梯的最大容量为<= 1000磅。 返回在电梯沉重之前能够进入电梯的最后一个人的名字! 返回类型应为表格 问题: 解决此问题的最有效方法是什么?如果循环正确,是否还有改进的空间? 我使用了一个循环和#临时表,这是我的解决方案: set rowcount 0 -- THE SOURCE TABLE "LINE" HAS THE SAME SCHEMA AS #RESULT AND #TEMP use Northwind go declare @sum int declare @curr int set @sum = 0 declare @id int IF OBJECT_ID('tempdb..#temp','u') IS NOT NULL DROP TABLE …
10 sql-server  t-sql 

2
mongoDB投影如何影响性能?
从MongoDB文档中提到: 当您只需要文档中的一部分字段时,可以通过仅返回所需的字段来获得更好的性能 过滤字段如何影响性能?性能是否与通过网络传输的数据大小有关?还是将要保存在内存中的数据大小?该性能究竟如何提高?文档中提到的这种性能是什么? 我的MongoDB查询速度很慢。返回子集会影响我的慢查询吗(我的字段上有复合索引)?

2
为多种用户类型及其联系信息建模数据库结构
我正在设计一个数据库,该数据库将存储各种类型的用户。他们主要(但不是唯一)是演员,导演和作家。当前只有四种相关的用户类型。这个数字可能会有所增加,但是可能性很小-在这种情况下,这个数字很小。 该计划是要有一个users表,几乎只负责登录该网站(name,email以及一password列和另外两列,例如它们是否已被批准,以及updated_at),以及每个用户类型的附加表有自己独特的一组列。例如,只有演员才会有种族栏,只有导演会有传记栏,只有作家才需要提供位置。但是,由于我以前没有管理过这种复杂的数据库,所以我想知道如何组织几个方面: 首先,用户可以是以上类型中的任何一种,也可以是任何组合。因此,我了解到我需要director_user带有director_id和user_id列的表(例如)。这样是否足以按角色类型过滤所有用户? 其次,大多数用户会选择Twitter个人资料和电话号码。并且所有演员必须为其其他任何在线演员个人资料至少包含一个网址;目前可以包含三个,但是这个数目可能会增加。我是否认为每种可能的个人资料/联系方式的单独表格是组织数据的最佳方式,对吗?

2
星型架构和数据立方体之间的区别?
我参与了一个新项目,其中我必须从现有的关系数据库系统中创建数据多维数据集。 我了解到,现有系统的设计不正确,我不确定从哪里开始。 我的问题是: Star Schema和数据立方体之间有什么区别? 我必须从哪里开始?从星型模式还是直接从数据多维数据集? 数据立方体是从星形模式生成的吗? 我在关系数据建模方面经验不足,这个问题似乎太基本了,我试图从很少的资源中弄清楚,但仍不清楚。请给出您的意见和建议? 如果我错过了与此问题相关的非常重要的事情,请也分享您的想法。

4
在LIKE运算子中选择多个值
我在下面给出了一个SQL查询,我想使用like运算符选择多个值。 我的查询正确吗? SELECT top 1 employee_id, employee_ident, utc_dt, rx_dt FROM employee INNER JOIN employee_mdata_history ON employee.ident=employee_mdata_history.employee_ident WHERE employee_id like 'emp1%' , 'emp3%' ORDER BY rx_dt desc 如果没有,谁能纠正我? 我的表格包含大量以'emp1'和开头的数据'emp3'。我可以基于前3个“ emp1”和前2个“ emp3”过滤结果rx_dt吗?


1
InnoDB:由于缺少MLOG_CHECKPOINT而忽略重做日志
我正在使用mysql版本5.7.14(在OS X El Capitan上进行自制安装)。当mysql运行时,我的系统无法正常关闭;当我尝试启动mysql守护程序时,重新启动后,出现以下错误。 2017-02-07T10:11:42.224506Z 0 [Note] mysqld (mysqld 5.7.14) starting as process 18234 ... 2017-02-07T10:11:42.227375Z 0 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/var/mysql/ is case insensitive 2017-02-07T10:11:42.228809Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2017-02-07T10:11:42.228821Z 0 [Note] InnoDB: Uses event mutexes 2017-02-07T10:11:42.228826Z 0 [Note] InnoDB: …

1
通过多个联接对不同行求和
架构: CREATE TABLE "items" ( "id" SERIAL NOT NULL PRIMARY KEY, "country" VARCHAR(2) NOT NULL, "created" TIMESTAMP WITH TIME ZONE NOT NULL, "price" NUMERIC(11, 2) NOT NULL ); CREATE TABLE "payments" ( "id" SERIAL NOT NULL PRIMARY KEY, "created" TIMESTAMP WITH TIME ZONE NOT NULL, "amount" NUMERIC(11, 2) NOT NULL, …


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.