标签: data-modeling

从何处获取地形数据 - 免费和付费?

你在哪里可以得到地形数据?您可以免费获得哪些分辨率数据?购买数据时可获得哪些分辨率数据?那数据多少钱?我发现这个网站有免费的地形数据.分辨率为30米x 30米.这是免费的最好的吗?

gis data-modeling map terrain

10
推荐指数
2
解决办法
4654
查看次数

在数据库设计中使用rowguid作为唯一键是一个好主意吗?

SQL Server提供[rowguid]类型.我喜欢将其用作唯一主键,以标识要更新的行.如果您转储表并重新加载它,则会显示好处,而不会破坏SerialNo(标识)列.

在分布式数据库的特殊情况下,例如在笔记本电脑上的离线副本或类似的东西,没有其他工作.

你怎么看?开销太大了?

sql-server database-design data-modeling primary-key

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

为现有模式建议Cassandra数据模型

我希望有人可以帮我建议使用nosql数据库Apache Cassandra实现合适的数据模型.比我更需要它在高负载和大量数据下工作.

简化我有3种类型的对象:

  • 产品
  • 标签
  • ProductTag

产品:

key - string key
name - string
.... - some other fields
Run Code Online (Sandbox Code Playgroud)

标签:

key - string key
name - unique tag words
Run Code Online (Sandbox Code Playgroud)

ProductTag:

product_key - foreign key referring to product
tag_key  - foreign key referring to tag
rating - this is rating of tag for this product
Run Code Online (Sandbox Code Playgroud)

每个产品可能有0个或多个标签.标签可以分配给1个或多个产品.意味着产品和标签之间的关系在关系数据库方面是多对多的.

"评级"的价值经常"非常"更新.

我需要运行以下查询

  • 按键选择对象
  • 选择按评级订购的产品标签
  • 按评级按标签顺序选择产品
  • 按product_key和tag_key更新评级

考虑到评级不断更新,最重要的是使这些查询在大量数据上非常快.

database-design data-modeling key-value cassandra nosql

10
推荐指数
1
解决办法
2013
查看次数

varchar(1)与char(1)之间的性能

有没有之间的性能差异varchar(1)char(1)?哪个RDBMS以不同的方式处理这两种数据类型和大小?

database-design data-modeling

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

有哪些方法可以在数据库中存储有关匿名/来宾用户的信息?

我们的应用程序具有在线商店和其他功能,并且通常要求用户在完成销售之前进行注册,从而customer_ID在该过程中创建独特的.当他们返回时,他们可以登录并从数据库中检索他们的联系方式和交易历史记录.

我们现在正在探索在"匿名"或"客户"客户的情况下该做什么,向不想注册的客户开放在线商店,以及在后端应用程序中记录的销售情况,其中客户是电子邮件,邮政地址等太费时间了.该解决方案也可以在网上商店之外使用.

多个公司使用相同的数据库,数据库建立在派对模型结构上,因此我们探索了几个选项:

  1. 将所有匿名客户存储customer_IDtransaction表中预定义的客户下:
    1. customer_ID = 0为每个匿名用户和customer_ID > 0每个真实用户
      • 这是直接硬编码到应用程序中
      • 但更多参与确定哪些客户属于哪家公司
      • 是否应将详细信息customer_ID = 0存在于customer数据库的表中或作为应用程序中的对象?
        • 如果在数据库中,可以进行哪些数据库级约束以确保它始终存在?
        • 如果没有在数据库中,然后从外键约束transaction.customer_ID,以customer.customer_ID不再工作
    2. customer_ID 和公司一样 party_ID
      • 更容易确定每家公司的总销售额等
      • 这会使事情变得混乱,因为公司似乎是自己的客户,而不是其他独特的客户
  2. customer_ID为每个新的匿名客户生成唯一的(每个会话)
    • 如果同一个物理用户返回怎么办?将有许多记录重复相同类型的数据; 电子邮件,送货地址等
  3. 使用其他唯一密钥(例如电子邮件地址)来引用客户
    • 由于人们有时使用多个电子邮件地址或留下旧地址,因此并不总是可靠的.
    • 如果没有电子邮件地址,如车间,备考发票等情况怎么办?
  4. 其他一些Stack Overflow灵感解决方案!

加成

在其他地方建议使用#2和#3的组合 - 尝试为每个客户存储单个记录,如果可能,使用电子邮件地址,或者如果没有,则在每次访问时记录新记录.

我要指出的是,我们并不需要存储一个记录每一个匿名的客户,但它只是似乎关系数据库的建立是为了对付的关系,所以有一个空或customer_IDtransaction表中没有引用实际客户记录似乎错了......

我还必须强调,这个问题的目的是确定在没有邮寄地址或电子邮件地址的情况下记录"临时"交易的真实解决方案(想象一个超市的chekout)以及电子邮件地址和网上商店交易.邮政地址是否存储.

SO社区过去使用了哪些解决方案?

php mysql database-design web-applications data-modeling

10
推荐指数
1
解决办法
2866
查看次数

如何将复杂的方程式放入R公式中?

我们将树的直径作为预测因子,树高作为因变量.对于这种数据存在许多不同的方程式,我们尝试对其中的一些进行建模并比较结果.

但是,我们无法弄清楚如何正确地将一个方程式放入相应的R formula格式中.

trees数据组中R,可以使用,例如,

data(trees)
df <- trees
df$h <- df$Height * 0.3048   #transform to metric system
df$dbh <- (trees$Girth * 0.3048) / pi   #transform tree girth to diameter
Run Code Online (Sandbox Code Playgroud)

首先,似乎运作良好的等式的例子:

在此输入图像描述

form1 <- h ~ I(dbh ^ -1) + I( dbh ^ 2)  
m1 <- lm(form1, data = df)
m1

Call:
lm(formula = form1, data = df)

Coefficients:
(Intercept)    I(dbh^-1)     I(dbh^2)  
27.1147      -5.0553       0.1124  
Run Code Online (Sandbox Code Playgroud)

系数a,bc估计,这是我们感兴趣的.

现在有问题的等式:

在此输入图像描述

试着像这样适合它:

form2 <- …
Run Code Online (Sandbox Code Playgroud)

statistics regression r data-modeling linear-regression

10
推荐指数
3
解决办法
5681
查看次数

在Cassandra中对版本化层次结构进行高效建模

免责声明:
这是一篇相当长的帖子.我首先解释我正在处理的数据,以及我想用它做什么.
然后我详细介绍了我考虑过的三种可能的解决方案,因为我已经尝试过做作业了(我发誓:]).我最终得到了"最佳猜测",这是第一个解决方案的变体.

我的终极问题是:使用Cassandra解决问题最明智的方法什么?这是我的尝试之一,还是别的什么?
我正在寻找经验丰富的Cassandra用户的建议/反馈......

我的数据:
我有很多SuperDocuments在树形结构(标题,副标题,部分......)中拥有文档.

每个SuperDocument结构都可以随着时间的推移而改变(主要是重命名标题),从而为我提供了多个版本的结构,如下所示.

超级版本

我正在寻找:
对于每个SuperDocument我需要按照上面的日期对这些结构加时间戳,并且我希望在给定的日期找到最接近的早期版本的SuperDocument结构.(即最新版本version_date < given_date)

这些考虑可能有助于更轻松地解决问题:

  • 版本是不可变的:变化非常罕见,我可以在每次更改时创建整个结构的新表示.
  • 我不需要访问结构的子树.
  • 我说可以说我不需要找到给定叶子的所有祖先,也不需要访问树内的特定节点/叶子.一旦我拥有整棵树,我就可以在我的客户端代码中完成所有这些工作.

好吧,让我们这样做
请记住我真的只是开始使用Cassandra.我已经阅读/观看了很多关于数据建模的资源,但是在该领域没有太多(任何!)经验!
这也意味着一切都将用CQL3编写...对不起节俭爱好者!

我第一次尝试解决这个问题是创建下表:

CREATE TABLE IF NOT EXISTS superdoc_structures (
    doc_id varchar,
    version_date timestamp,
    pre_pos int,
    post_pos int,
    title text,

    PRIMARY KEY ((doc_id, version_date), pre_pos, post_pos)

) WITH CLUSTERING ORDER BY (pre_pos ASC);
Run Code Online (Sandbox Code Playgroud)

这会给我以下结构:

在此输入图像描述

我在这里使用嵌套集模型 ; 我认为保持结构有序会很好,但我对其他建议持开放态度.

我喜欢这个解决方案:每个版本都有自己的行,其中每列代表层次结构的级别.
但问题是我(坦率地)打算查询我的数据如下:

SELECT * FROM superdoc_structures 
    WHERE doc_id="3399c35...14e1" AND version_date < '2014-03-11' LIMIT 1
Run Code Online (Sandbox Code Playgroud)

卡桑德拉很快提醒我,我不被允许这样做!(因为分区程序不保留群集节点上的行顺序,因此无法扫描分区键)

然后怎样呢...?
好吧,因为Cassandra不会让我在分区键上使用不等式,所以就这样吧!
我将制作version_date一个聚类键,我的所有问题都将消失.是的,不是真的...... …

data-modeling hierarchical-data cassandra cassandra-2.0

10
推荐指数
1
解决办法
4305
查看次数

使用分类数据作为sklean LogisticRegression中的功能

我想了解如何使用分类数据为特征sklearn.linear_modelLogisticRegression.

我理解当然我需要编码它.

  1. 我不明白的是如何将编码特征传递给Logistic回归,以便将其作为分类特征处理,而不是解释编码作为标准可量化特征时获得的int值.

  2. (不太重要)有人可以解释两者的区别preprocessing.LabelEncoder(),DictVectorizer.vocabulary或者只是一个简单的字典编码自己分类数据?Alex A.的评论涉及这个主题,但不是很深刻.

尤其是第一个!

python regression data-modeling scikit-learn logistic-regression

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

需要数据模型的建议

需要有关我的用例的数据模型的建议.我有两个参数来存储,A表示类型为T的东西,B表示类型为U的东西(它是T的集合)让我们说T类型的每个对象都有2个属性p1和p2,现在A =(t的计数与p1)/(t与p1的计数)+(t与p1的计数)

B =(A1 + A2 + ..)用于其T的集合/(U的T的数量).

现在,每当添加/修改类型为T的新对象时,我必须处理A和B的存储和更新.(几乎立即)

我已决定按如下方式处理A的计算,以维持一个像(T id,p1的编号,p2的编号)的表,从而每次数字改变时我只更新第2或第3列,我可以计算A在飞行中.但我很困惑如何优化B ??的计算 我最初的想法是在上面的表格上写一个触发器,这样每当有什么东西得到更新时,重新计算那个U对象的B,但我认为当我扩展时,这会给我带来很差的表现,有什么建议我可以在这做什么呢?

示例:假设U是具有多个块(T)的城市.现在,每个区块都会说p1个非veg餐厅和p2个veg.因此,每个区块的A将是p1 /(p1 + p2),并且每个城市的B将是该城市中的A1 + A2 + ../count(区块).如何为所有对象存储最初计算的A和B,这样当p1和p2不断变化时,我几乎需要立即更新A和B.

添加指标,以便更清楚地了解所需的解决方案,

  1. 我已经拥有10万个街区,接近1000个城市.这个数字将来会增加.我的要求是,一旦我为所有现有数据计算A和B,任何导致变化的p1和p2的更新都说'deltaA'.现在这个'deltaA'应该很容易附加到'A'而不是重新计算A(类似的B),我们不能有一些可以支持这个的数据模型吗?
  2. 延迟应为~100ms i,在p1/p2变化后应该可以使用A和B.

  3. 写入频率将为峰值,它将同时为100或1000次写入或3-5次.

mysql database database-design data-modeling

10
推荐指数
1
解决办法
263
查看次数

我如何建模(GitHub)相关的权限?

tl; dr:我如何实现像(例如)github的权限模型

更新以尝试解决@ philipxy的一些评论:

我打算实现一个类似于github的权限模型:

  1. 用户
  2. 用户可以成组
  3. 用户可以在组织中
  4. 团体可以在组织中
  5. 用户将被允许在资产,组或组织中执行任何C,R,U和D操作,如下所示:
    1. 允许那些(C,R,U,D)操作的个人用户
    2. 已被授予这些权限的组的成员
    3. 已被授予这些权限的组织的成员
      1. 或者作为该组属于具有权限的组织的组的成员
  6. 用户被授予读取权,因为资产/组/组织对匿名用户("公共")是可见的(可读)
  7. 用户还应具有一组权限,以表明他们是否可以对权限执行任何C,R,U或D(用户可以为其他用户,组创建权限[C,R,U,D]或组织)
    1. 用户可以为他们创建的任何资产,组或组织设置权限,或者为其授予权限的任何资产,组或组织设置权限.

这些权限将控制谁可以对站点中的资产,组和组织执行创建,读取,更新和删除(CRUD)操作.

大致如何对此进行建模?

显然我有这些模型:

  1. 财富
  2. 用户
  3. 组织

接下来是什么?

  1. 允许?
  2. PermissionType(捕获C/R/U/D)?

我正在使用节点中的mysql(通过sequelize),但我可以自己弄清楚具体的语法,我还没有想出如何在概念上做到这一点.

更多@ philipxy的观点:

你提议我做的更多的事情确实是我认为我正在寻求帮助的事情.也就是说,那些信息设计方法(NIAM,FCO-IM,ORM2,IDEF1X)正是我正在寻找的.我知道有关关系数据库实现(学习规范化和正常形式以及诸如此类的日子)的相当数量,但实际上指定业务需求并将其转换为可操作规范的过程是一项挑战.

  • ORM2 很难找到,因为名称冲突与模块的NodeJS的.:我已经下载了从NIAM维基百科页面链接的书籍
  • 现在使用NIAM似乎不太常见?
  • FCO-IM:我从他们的网站上下载了这本书
  • IDEF1X:看起来也很有趣

我想我要去拿一本数据库教科书.

更多关于谓词的工作:

  1. U 识别出一个 User
  2. A 识别出一个 Asset
  3. G 识别出一个 Group
  4. a User U可以是0或更多Groups G
  5. O 识别出一个 Organization
  6. a User U可以是0或更多Organizations O
  7. a Group G可以是0或更多Organizations O
  8. 资产A可以由a创建User U …

database database-design web-applications data-modeling relational-database

9
推荐指数
1
解决办法
1256
查看次数