我正在创建一个书签系统,人们可以在其中保存他们的书签。每个用户都有自己的带有书签的个人页面。书签应至少有一个标签,最多五个。每个用户可以创建无限的书签/标签。
我创建了以下表格:
User
----
Id
Email
Bookmark
--------
Id
UserId
Title
Url
Tag
---
Id
UserId
Title
Description
TagBookmark
-----------
TagId
BookmarkId
Run Code Online (Sandbox Code Playgroud)
这是正常化了吗?或者我应该采取不同的做法?对于一百万个书签来说,这会表现良好吗?
我也不确定是否应该重用现有的书签/标签。
示例1:
User1 和 User2 都创建书签“ http://google.com ”。我应该将其保存为一个书签吗?或者为每个用户单独保存它们?
示例2:
User1 和 User2 都创建标签“search-engine”。我应该将其另存为一个标签吗?或者为每个用户单独保存它们?
如果我不在用户之间重复使用书签和标签,这些表可能会变得相当大。
如果我想将架构所有权转移到另一个架构,我知道我需要使用以下内容:
ALTER SCHEMA destinationschema TRANSFER sourceschema.objectname;
Run Code Online (Sandbox Code Playgroud)
但它与以下有何不同:
ALTER AUTHORIZATION ON OBJECT::sourceschema.objectname TO destinationschema ;
Run Code Online (Sandbox Code Playgroud)
提前致谢!
我正在使用 Sql Server 2005 Express 版本在 xml 输出中显式地生成用户定义的节点。下面的代码工作正常,只是当用户表中不存在记录集时,我无法生成一个空节点。
代码:
select 1 as tag, null as parent,
FirstName as [User!1!FirstName!Element],
LastName as [User!1!LastName!Element]
FROM Users
FOR XML EXPLICIT
Run Code Online (Sandbox Code Playgroud)
输出:
<Users>
<FirstName>Ammy</FirstName>
<LastName>Dammy</LastName>
</Users>
<Users>
<FirstName>Lammy</FirstName>
<LastName>Lolly</LastName>
</Users>
Run Code Online (Sandbox Code Playgroud)
空表的预期输出:
<Users></Users>
Run Code Online (Sandbox Code Playgroud)
注意:我不喜欢这种xsnil方法,欢迎所有其他解决问题的方法
在 Oracle(也可能在其他地方)中,执行 ALTER TABLE 语句将对当前事务进行隐式提交。
我们有一个工具(用 Java 编写)应该通过以下方式修改模式:
编写的工具将向用户显示当前模式布局并允许他对其进行修改。(基本上是向某些表添加或删除自定义“属性”列)一旦他满意,他就可以应用他的更改。
请注意:基本架构布局以及您需要通过 ALTER TABLE 更改某些内容这一事实是由标准预定义的,我们无法更改,因为其他工具将不再起作用。
现在的问题是我们不能在单个事务中运行这些更改,因为 AFAIK,不可能在一个事务中执行多个 ALTER TABLE 语句。
如果在应用更改时出现问题,我们有哪些选项可以“回滚”到初始状态?
注意:这里有人提出了 RESTORE POINT + FLASHBACK——从这个(Java)工具调用它是个好主意吗?(在一些应该使用该工具的站点上,我们没有完全控制数据库实例。)
注意:Oracle 10g2 及以上
当我尝试在 SQL Server Management Studio 中更改 dbo 的默认架构时,ALTER 失败并指出无法更改 dbo 帐户的架构。是否有任何技巧可以将“dbo”的 dbo 默认架构更改为“xxx”?
谢谢!
我将填充每加仑英里数 (MPG) 表。它来自里程表源。
目前设置如下:
id (primary_key)
, truck_num
, start_date
, end_date
, start_miles
, end_miles
, start_fuel
, end_fuel
, miles
, gals
, mpg
Run Code Online (Sandbox Code Playgroud)
似乎有一些冗余。的miles是 (end_miles - start_miles),对于同上gals。
我们应该预先计算这些miles和gals列并存储在数据库中吗?它肯定会使查询更容易,但会牺牲空间。mpg计算相同的问题。计算列会减慢速度,不是吗?
什么索引最有效?每周大约有 3,000 辆卡车(记录)成批插入。
我正在使用 SQL Server 2008 R2。
编辑:我将使用的示例查询
-- find average mpg for since ytd
select m.truck_num, avg(mpg)
from mpg m
join truck t on t.truck_num = m.truck_num
where start_date >= @begin_of_year and end_date <= @today
group …Run Code Online (Sandbox Code Playgroud) 最近我遇到了一个问题,我的数据库变得非常大,每次我想更改架构时,我都不能让自己停机。
这使我开始寻找在线更改架构的解决方案。
1) pt-online-schema-change。非常有吸引力的项目,但老实说我很失望。下载了最新版本后,我不得不更改代码以使脚本正常工作。在开始脚本失败并显示错误消息。所有这些都是我在 Percona 的错误报告中找到的。在修补脚本完成它的工作后,希望很好。
2)橡木在线更改表。同样非常有趣的项目,facebook 在MySQL 的 Online Schema Change上提到它是好产品。明天我去试试。
如果您更有经验,请与我们分享您的意见。什么是最好和最可靠的产品?
假设我有以下数据库/模式设置和下表:
SCHEMA_1 (default):
TABLE_1
SCHEMA_2:
TABLE_2
Run Code Online (Sandbox Code Playgroud)
如何在另一个模式的表中插入行?以下似乎不起作用:
INSERT INTO TABLE_2 (...) VALUES(...)
Run Code Online (Sandbox Code Playgroud)
如何在另一个架构中插入行?
我有一个大约 700k 行的表,每行都由一个唯一的 itemnumber 标识。
通过计算指示关联强度的单个数值或两个项目之间的数学“距离”,每行/项目可以与表中的任何其他行/项目相关联,没有关联/无限距离由“0”表示" 而数值“1”表示相同项目/无距离。
这些关联编号难以计算/计算密集并且基于存储在单独数据库中的数据。因此,为所有行组合预先计算一次,然后只为添加的新行(每年 <4k 新行)预先计算它们似乎是有道理的。
生成的关联表可能如下所示:
itemnumber | associatedwithitem | associationstrength
23920390293 | 12356456885 | 0.12255888644888
45468411516 | 44565464884 | 0.91155684161123
45648855222 | 98956221818 | 0.00000000000000
45468411516 | 23920390293 | 0.46813185844468
Run Code Online (Sandbox Code Playgroud)
然而,这样一个表的大小将是巨大的:((700,000 x 700,000) - 700,000)/2 = 244.999.650.000 = 大约 2500 亿行,即使在丢弃所有自连接(公式中的 -700,000)并存储之后每个连接只有一种方式(公式中除以二)。
我将只运行一种类型的查询,如下所示:
“给定一个 itemnumber 列表(见上表示例),计算平均(mean)关联数。”
针对关联表运行的每个 itemnumber 列表通常包含 < 1k itemnumber,但很少会大到 50k。但是因为 1k 个 itemnumber 的列表中的每个数字都将与 700k 个其他 itemnumber 相关联,这样的查询将提取 700,000 x 1000 = 700,000,000 个关联号,然后需要计算这 700m 个关联号的平均值。
对以下方面的任何想法:
我在 SQL Server 2012 上有一个包含 15 个数据库的实例。我将设置备份系统,该系统每晚都可以工作。我只想备份模式,因为有几个数据库非常大。我还没有找到解决这个问题的任何方法。
如何仅备份带有作业的架构?
schema ×10
mysql ×2
sql-server ×2
alter-table ×1
backup ×1
erd ×1
flashback ×1
insert ×1
jobs ×1
optimization ×1
oracle ×1
performance ×1
security ×1
select ×1
xml ×1