小编phi*_*pxy的帖子

如何陷阱"在新标签页中打开"点击jquery.click

我有一个jquery脚本,它将click事件附加到每个链接,在单击链接时运行一个动作.这一直很有效,但我得到了一些反对意见,这些反馈正在挫败我.

用户右键单击链接并在新选项卡中打开它.当她这样做时,jquery没有捕获点击.坏用户.我用cmd-click再现了这个.

有没有办法捕捉这些手势,或者这是一个固有的限制?

javascript jquery

5
推荐指数
1
解决办法
7126
查看次数

在sql中进行拓扑排序

我正在解决表中某些对象之间的依赖关系.为了依赖它,我必须对对象做一些事情.例如,第一个对象不依赖于任何对象.第二个和第三个取决于第一个,依此类推.我必须使用 拓扑排序.有人可以显示实现的样本,所以在t-sql中排序.我有一张桌子:

create table dependency
(
  DependencyId PK
  ,ObjectId
  ,ObjectName
  ,DependsOnObjectId
)
Run Code Online (Sandbox Code Playgroud)

我想得到

ObjectId ObjectName SortOrder

谢谢.

t-sql sorting sql-server-2008 topological-sort

5
推荐指数
1
解决办法
2159
查看次数

2NF和BCNF之间的差异

根据维基百科示例,以下示例不是bcnf,因为存在重叠的候选键(名称和工作,以及名称和承包商)

Name   Work        Contractor
John   Plumber     Plumber industries
Ryan   Plumber     Plumber industries
Ryan   Elektrician Electro industries
Run Code Online (Sandbox Code Playgroud)

但是,这张表还不在2NF吗?考虑到Name和work组成主键,然后承包商只能从work中派生出来,那么数据库是否应该被拆分?

如果我的陈述是真的,有人可以为我提供一个(简单)数据库的例子,该数据库不是在BCNF中,而是2NF吗?

relational-database database-normalization

5
推荐指数
1
解决办法
2536
查看次数

MySQL选择匹配相关表中多行的行

下面的表格要大得多,但为了便于提问而缩小了尺寸

表 1 - Exercise_rolladex

Exercise_ID | Exercise_Name
---------------------------
1            Pushups
2            Turkish Get Ups
3            Squats
4            Ice Skater
Run Code Online (Sandbox Code Playgroud)

表 2 - Exercise_planes

Exercise_Plane_ID | Exercise_Plane
----------------------------------
1                  Sagittal
2                  Frontal
3                  Transverse
Run Code Online (Sandbox Code Playgroud)

表 3 - Exercise_has_planes

Exercise_ID | Exercise_Plane_ID
-------------------------------
1             1
2             1
2             2
2             3
3             1
4             2
4             3
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何构建一个查询,在其中我可以找到每个练习的 Exercise_ID,其中有 Exercise_Plane_ID=1 和 Exercise_Plane_ID=2。换句话说,找到同时具有矢状面和额状面运动平面的练习。

正确的查询

   SELECT e.Exercise_Name, p.Exercise_Plane 
   FROM exercise_rolladex e
   INNER JOIN exercise_has_planes h ON h.Exercise_ID=e.Exercise_ID
   INNER JOIN exercise_planes p ON p.Exercise_Plane_ID=h.Exercise_Plane_ID …
Run Code Online (Sandbox Code Playgroud)

mysql inner-join

5
推荐指数
1
解决办法
3359
查看次数

寻求扩展的除法运算符解释

我正在阅读Itzik Ben-Gan,Lubor Kollar,Dejan Sarka和Steve Kass撰写的有关Codd 在Microsoft SQL Server 2008内部的八个原始运算符:T-SQL查询的内容,并且不了解Divide运算符。

引号定义了Divide运算符:

除数关系用于划分股息关系并产生商关系。商关系由除数表中一列的值组成,第二列包含除数中的所有值。”

该声明与Wikipedia的定义和示例一致

“为除法运算的计算公式包括三个关系:一个 除以bÇ,其中一个是被除数,b是除数,并且Ç是介体关系。让关系a具有属性A,关系b具有 属性B。除法运算符返回一个关系,该关系包括除数的所有元组,这样对于除数关系的所有元组,元组{A,B}出现在介体关系中。”

下图用于演示此语句。我相信这些关系按以下顺序表示:分红,除数,调解器和最终结果。

在此处输入图片说明

第二个关系(除数)具有用于元组的{a,x},{a,z},{b,x}和{b,z}。我的思考过程如下:由于存在元组{b,x}和{b,z},因此应在最终结果中包括b。我已经在该书的网站上检查了该书的更正(在本文开头链接),并且确定我错了。

为什么图示例a而不是ab的结果

relational-algebra divide relational-division

5
推荐指数
1
解决办法
483
查看次数

SQL表具有单列和增量ID

简单的数据库设计问题,我老实说不能完全指责.

在很多情况下,我有一个类型表,它由一个ID和类型的名称组成.Ala.语言代码表有2列

表: language

language_id (1,2,3)                 
language_code (et, en-us, de)
Run Code Online (Sandbox Code Playgroud)

现在我总是把language_id作为其他表的外键,

哪个更好?

分发language_id为外键,然后联接得到language_code.

要么

language_id完全忽略我们所拥有的

表: language

language_code (et, en-us, de)
Run Code Online (Sandbox Code Playgroud)

然后,当我们想知道用户的母语是什么时,我们将只将代码作为外键分发,并且不需要任何连接.

意见?

sql database-normalization

5
推荐指数
1
解决办法
105
查看次数

我什么时候应该使用复合主键?

ETA:我的问题是基于保持最佳数据库.具有ProjectUserBooleanAttribute的所有复合主键(可能具有PUAT_IdUserID的索引)和使用自动增量PK的非复合表但是具有PUAT_IdUserID的索引之间的数据库性能/大小有何不同?从进一步阅读看来,如果我采用非复合方法,我将不得不在这两列上创建一个唯一索引.我还需要在这两列上创建索引吗?如果是这样,这实际上不意味着该表中的每一列都有它自己的索引吗?

这是数据库大小(索引)与性能的典型困境吗?


所以我想要创建以下实体

  • 项目
  • 用户
  • ProjectUserAttributeTypes

在这个简化的示例中,我的所有ProjectUserAttributeTypes都将是boolean,因此我只显示ProjectUserBooleanAttribute表.

假设我想创建两个名为SilverGold的布尔ProjectUserAttributeType .我只想在ProjectUserAttributeTypes中创建两行.现在,如果我想将用户指定为具有该属性,我将向ProjectUserBooleanAttribute添加一行

出于性能原因,DBA已经警告我不要使用复合主键.然而在这种情况下,我没有看到我使用复合材料获得了什么.在这两种情况下,我都需要确保ProjectUserBooleanAttribute对所有列都具有非null和唯一值.我肯定也需要索引.

注意:我的最终目标是能够查询我的数据库并查找具有某些属性组合的所有用户.我会加入表来按项目过滤,然后使用where子句进一步过滤.几个例子:

  • (金或银)
  • (GOLD XOR SILVER)
  • ((金或银)而不是(铜))

复合PK

Compsite ERD

与非复合PK

没有复合ERD

database-design composite-key

5
推荐指数
1
解决办法
5595
查看次数

Postgresql:部分外键?

是否可以在一般的 sql/postgresql 中创建部分外键(类似于部分索引)?在以下情况下,我还没有找到强制参照完整性的方法:

表 A 是可软删除的(它有一个列已删除的_at,当一行被标记为这样时,它被设置为一个值),而表 B 是可硬删除的(意味着我们实际上删除了行)

表一:

  • ID
  • 删除_at
  • 其他一些东西
  • id 的部分唯一索引,其中 deleted_at 为空

表B:

  • ID
  • 删除_at
  • 其他一些东西
  • id 的部分唯一索引,其中 deleted_at 为空

表 C:

  • 推荐类型
  • 参考编号
  • 其他一些东西

表 A、B、C 中的行代表某个类的对象。它们之间的关系是每个 C 需要引用 A 或 B,由“类型”列的值标记,“id”将标记引用对象的哪个实例。

我想要实现的是强制完整性,以便对于表 C 中引用类型为“MyData::A”的所有行,referred_id 必须与表 A 的部分索引中的行匹配(其中deleted_at 为空),类似地对于 B

就像是

ADD CONSTRAINT name FOREIGN KEY table_C(referred_id)
    REFERENCES table_A(id where deleted_at is not null)
    where referred_type = 'MyData::A
ADD CONSTRAINT name FOREIGN KEY table_C(referred_id)
    REFERENCES table_B(id where deleted_at is not null)
    where referred_type = 'MyData::B …
Run Code Online (Sandbox Code Playgroud)

sql database postgresql constraints foreign-keys

5
推荐指数
0
解决办法
1829
查看次数

Postgresql“列必须出现在 GROUP BY 子句中或在聚合函数中使用”和唯一字段

CREATE TABLE posts (
    id bigint NOT NULL,
    user_id bigint NOT NULL,
    content text
);

CREATE TABLE users (
    id bigint NOT NULL,
    email character varying DEFAULT ''::character varying NOT NULL
)

CREATE UNIQUE INDEX index_users_on_email ON users USING btree (email);
Run Code Online (Sandbox Code Playgroud)

以下 SQL 请求:

SELECT posts.content, users.email /*, other aggregate fields not relevant for the question */
   FROM posts
   INNER JOIN users ON posts.user_id = users.id
   GROUP BY posts.id;
Run Code Online (Sandbox Code Playgroud)

给出错误column "users.email" must appear in the GROUP BY clause or …

sql postgresql foreign-keys inner-join aggregate-functions

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

在数据库中存储 JSON 违反了 1NF?

许多 DBMS 开始允许在数据库中使用 JSON。这违反了 1NF 吗?

1NF 的规则之一是不在一列中存储多个值。但我们存储的是 JSON,它可以包含键值对。这是否违反规则?

mysql database json database-normalization

5
推荐指数
1
解决办法
572
查看次数