小编Dam*_*vic的帖子

SQL中的条件外键

我有一个名为PartyChannel的表,其中包含以下列

 ID, ChannelID, ChannelType
Run Code Online (Sandbox Code Playgroud)

ChannelID商店MailID或PhoneID或EmailID取决于ChannelType.

那么我如何在PartyChannel和所有三个表(邮件,电子邮件和电话)之间创建一个外键,具体取决于channelType.

sql-server database-design sql-server-2008

11
推荐指数
3
解决办法
5925
查看次数

关于公用表表达的PIVOT

我的CTE如下

WITH  details
        AS ( SELECT FldId
                   ,Rev
                   ,Words
                   ,row_number() OVER ( PARTITION BY FldId ORDER BY Rev DESC ) AS rn
             FROM   WorkItemLongTexts
             WHERE  ID = 2855
           )
  SELECT  f.ReferenceName
         ,d.FldId
         ,Rev
         ,Words
  FROM    details AS d
          INNER JOIN Fields AS f ON f.FldId = d.FldId
  WHERE   d.rn = 1 ;
Run Code Online (Sandbox Code Playgroud)

以上返回以下输出

ReferenceName    |   FldId      |    Rev     |    Words
Description            52            2            Description here  
Objectives           10257           2            Objectives here  
Specification        10258           6            Specification here  
Requirements          10259           6            Requirements here …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server

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

具有可变属性的多个产品类型的数据库设计

我有一个包含不同产品类型的数据库.每种类型都包含彼此差异很大的字段.第一类产品分为三类.第二类产品分为三类.但第三个和第四个,没有任何分类.

每种产品可以具有任意数量的不同属性.

我使用的数据库模型基本如下:(见链接) http://www.damirsystems.com/dp_images/product_model_01.png

我有一个庞大的数据库,在产品表中包含大约500000个产品.

因此,当我要从数据库中获取具有所有属性的产品,或者按属性搜索产品过滤时,它会严重影响性能.

任何人都可以帮助我在sql中的表结构,或者为这个问题做一些索引或任何可行的解决方案.因为不同的电子商务网站正在使用这种数据库,并且可以使用大量不同类型的产品.

database

6
推荐指数
1
解决办法
6793
查看次数

OUTER JOIN 使用 IN 列表?

我想仅使用项目列表来查找表中的命中和未命中,而不必创建新表来包含列表项并且不使用任何脚本。我一整天都在做很多临时查询,所以这很有用。

这是我现在使用的示例:

SELECT custid, name, email  
FROM customers  
WHERE custid IN  
('1111', '2222', '3333', '4444')  
Run Code Online (Sandbox Code Playgroud)

这将返回客户表中的所有条目,其中客户 ID 与我提供的列表中的条目相匹配。

我想找到一种方法来返回像 OUTER JOIN 这样的结果,在那里我可以看到匹配和未命中。

仅供参考:我正在使用 MS SQL Server,但能够在 mySQL 中执行此操作也很有用。谢谢!

sql sql-server

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

在 Haskell 中将元组数组转换为 JSON

有谁知道如何转换

tt :: (Int, [(Int, String)])
tt = (777, [(1, "AA") , (2, "BB") , (3, "CC")])
Run Code Online (Sandbox Code Playgroud)

类似于 JSON

{
"user": 777,
"data": [ 
            { "num": 1 , "typ": "AA" },
            { "num": 2 , "typ": "BB" },
            { "num": 3 , "typ": "CC" } 
        ]
}
Run Code Online (Sandbox Code Playgroud)

使用(最好)Aeson ?

json haskell aeson

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

Datawarehouse重复维度行

我们开始使用事件日志中的数据加载数据仓库.我们有一个普通的星型模式,其中事实表中的一行代表一个事件.我们的维度表是user_agent,ip,referal,page等的典型组合.一维表如下所示:

create table referal_dim(
  id integer,
  domain varchar(255),
  subdomain varchar(255),
  page_name varchar(4096),
  query_string varchar(4096)
  path varchar(4096)
)
Run Code Online (Sandbox Code Playgroud)

我们自动生成id以最终加入事实表的位置.我的问题是:什么是在批量加载过程中识别重复记录的最佳方法?我们在执行实际插入持久存储之前将日志文件的所有记录上传到临时表中,但是,id只是自动递增,因此两天相同的两个dim记录将具有不同的ID.创建值列的哈希是否合适,然后尝试比较?似乎尝试在每个值列上进行比较会很慢.对于这种情况,有没有最佳做法?

sql bulkinsert data-warehouse duplicates vertica

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