标签: database

在数据库中存储文件路径

背景资料

我正在开发一个项目,其文件路径字段是"一对一"关系(Invoice对象只允许一个文件)或"一对多"关系(一个Claim对象有很多可以添加的文件它).

我到底有什么

我目前有两个想法.

1)所有文件的一个数据库

我有一个[索赔]数据库

Claim (PK) --- Name --- Address
1              Joe      Some Place
Run Code Online (Sandbox Code Playgroud)

我有[发票]数据库

Invoice (PK) --- Vendor --- FilePathID
100              12         1
Run Code Online (Sandbox Code Playgroud)

还有一个[附件]数据库

UID (PK) --- Claim --- Description --- FilePath
1            NULL      Invoice         path\to\invoice
2            1         Receipt         path\to\receipt
3            1         Image           path\to\image
Run Code Online (Sandbox Code Playgroud)

这可以通过以下方式工作:

[Invoice]文件将在[Invoice]对象中明确定义(在本例中为[Attachment] ID 1).然后,文件将通过"附件"数据库中的链接号(上面的情况中的权利要求1)附加到[Claim]对象.这样我们就可以查询列出[Claim] one的所有附件,但同时将[Invoice]文件保存在由文件的UID编号链接的相同[Attachments]数据库中.这允许将所有上载映射到单个数据库中.

我对此方法的唯一关注是,在为[Invoice]上传的文件中,Claim字段保留为NULL.

2)文件路径存储在多个数据库中

这几乎与上面的示例相同,但不是在[Attachments]数据库中链接FilePath,而是直接在[Invoices]数据库中定义.像这样:

我有一个[索赔]数据库

Claim (PK) --- Name --- Address
1              Joe      Some Place
Run Code Online (Sandbox Code Playgroud)

我有[发票]数据库

Invoice (PK) --- Vendor --- FilePath
100              12         path\to\invoice
Run Code Online (Sandbox Code Playgroud)

还有一个[附件]数据库

UID (PK) --- …
Run Code Online (Sandbox Code Playgroud)

sql database database-design

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

如何在jsp页面中动态创建表的行和列

我正在尝试将数据从数据库检索到表中.但必须动态加载数据.

如何动态创建行和列我不知道?如果它只是要创建的行,那么我会轻松地完成它但我也想在页面上动态创建列,这就是为什么我很困惑如何执行它?

我的JSP代码:

<table width="59%" border="1">
    <%
        MySql1 o = new MySql1();
        o.connect();
        ResultSet r;
        int counter=1;
        String q = "select * from category_master;";
        r = o.getdata(q);
        while(r.next())
        {
            %>
                <tr>
                     <td><%= r.getString(1)%></td>                                      
                </tr>
            <% 
        }
    %>
</table>
Run Code Online (Sandbox Code Playgroud)

现在我正在显示第一列,<td>但如果用户不知道要检索多少列,那该怎么办?在select query我使用过,*所以我很困惑<td>.我希望所有动态,因为假设我将使用任何文本框或网址动态传递表名.

这里MySql1是一个具有执行操作的方法的类文件. connect()用于连接db,getdata()用于检索作为参数传递的查询数据和返回类型的getdata()方法Resultset.

所以这就是为什么我想要所有动态,但我不知道该怎么做.

html database select jsp html-table

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

在QueryDSL分组变换器中计数

在QueryDSL中使用groupby处理时,是否可以获得聚合结果的计数?我有以下查询:

query.from(catalog)
.innerJoin(qe).on(catalog.id.eq(qe.itemId))
.innerJoin(enterprise).on(enterprise.id.eq(qe.enterpriseId))

.leftJoin(catalogPerson).on(catalogPerson.catalogId.eq(catalog.id))

.where(catalog.deletionDate.isNull(), qe.enterpriseId.eq(org) )

.orderBy(catalog.creationDate.desc())

.limit(limit)
.offset(offset)

.transform(groupBy(catalog.id).as(Projections.constructor(Catalog.class,
                                catalog.id,
                                catalog.name,
                                catalog.code,
                                // //GET THE NUMBER OF CATALOG PERSONS'
                                )));
Run Code Online (Sandbox Code Playgroud)

我想得到属于某个目录的人数.

谢谢

java database jdbc querydsl

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

SSDT未解析参考ERROR SQL71561

我已经将一个数据库导入到一个数据库项目中,直接从bat中我得到了200多个关于未解析引用的错误.现在我已经阅读了几个这样的帖子和网站(http://blogs.msdn.com/b/bahill/archive/2009/08/26/using-self-referencing-or-local-3-part-names .aspx)原因是3部分名称.

解决方案是右键单击数据库项目>重构>重命名服务器/数据库引用.然而,我的窗口与前面提到的网站的窗口不同,下拉菜单是空的.我正在使用带有SSDT 2010的Visual Studio 2010专业版.如何理解这一点的任何帮助表示赞赏.

我需要导入大约20到30个数据库,并且手动纠正所有这些错误几乎是不可能的.

在此输入图像描述

database visual-studio-2010 sql-server-data-tools

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

Crystal Reports与SQL查询

我是一名程序员(主要是C++),他已进入非软件工作场所.但是,我对数据库的东西没有多少经验.

TL; DR:如果我们将Crystal Reports与仅编写执行SQL查询并解析结果的脚本进行比较,CR是否可以通过SQL查询和脚本执行哪些操作?我纯粹是在提取数据 - 而不是制作漂亮的文档.


详情:

在我的工作场所,他们有一个过程,您可以运行一堆Crystal Reports,将日期范围修改为当前月份,手动将每个日期范围导出到Excel,删除不需要的行和列,然后剪切并粘贴到摘要中管理层使用的Excel文档.

对我来说,这是非常疯狂和愚蠢的.我想自动化/编写大部分内容.

所以我有两个选择:

  • 学习Crystal Reports并尝试将现有报告修改为更加自动化.
  • 转储CR,只学习SQL,并使用使用CSV文件或其他东西的脚本以编程方式完成整个过程.

我更喜欢学习SQL,因为它更通用和有用.但我需要确信我可以获得我需要的数据输出(无需编写一百万行代码来自己重现CR.)

所以,是的,我正在寻找一个答案,比如"两者是等价的.你可以在CR中做任何事情,你可以通过脚本和SQL轻松完成",或"如果你需要根据参数将记录分组,然后总结他们的一个领域,然后CR将比原始代码更容易做到,"把我推向一个方向或另一个方向.

编辑:一些额外的细节.目前,我的水晶报告运行数据库查询,然后水晶做了类似的事情,"不显示返回的记录,而是按字段A对记录进行分组,然后显示每个组中记录的数量."

这样的功能难以通过SQL编码重现吗?例如,我不想写一个python(或其他)脚本来解析和处理来自明文CSV的数据.

sql database crystal-reports

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

使用单个.sql脚本文件创建多个表

我在oracle xe 11g数据库中创建了多个表,并且已经在不同的.sql文件中保存了每个表的脚本.但我需要使用单个.sql文件一次创建所有表.我试图在脚本下运行,但它只创建一次表.

CREATE TABLE ACCOUNT_DETAILS_TB 
(
  CUSTOMER_ID VARCHAR2(20) NOT NULL 
, ACCOUNT_ID VARCHAR2(20) NOT NULL 
);

CREATE TABLE ADDRESS_DETAILS_TB 
(
  ACCOUNT_ID VARCHAR2(20) NOT NULL 
, ADDRESS_ID VARCHAR2(20) NOT NULL 
);
Run Code Online (Sandbox Code Playgroud)

sql database oracle oracle11g oracle-sqldeveloper

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

匹配数据库中10000多个不同元素的最佳方法是什么?

好的,这是我的情景:

编程语言:Java

我有一个MYSQL拥有大约100,000,000个条目的数据库.

我在内存中有一个值列表,valueList大约有10,000个条目.

我想迭代valueList并检查此列表中的每个值是否与数据库中的匹配.

This means I have to make atleast 10,000 database calls which is highly inefficient for my application. Other way would be to load the entire database into memory once, and then do the comparison in the memory itself. This is fast but needs a huge amount of memory.

Could you guys suggest a better approach for this problem?

EDIT :

Suppose valueList consists of values like : {"New","York","Brazil","Detroit"}

From …

java mysql database

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

Phonegap - 获取数据库是否已存在

我正在使用Phonegap数据库.我需要知道数据库是否已经创建.我试图避免整个创建表和插入行功能,如果数据库已经存在.

var db = window.openDatabase("Database","1.0","FiltersResults",50000000);

这打开/创建我的数据库,确定,但我怎么知道这个数据库是否已存在?

database android exists cordova

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

为什么MySQL的data_free大于数据和索引的组合?

我很难从MySql 5.5数据库中解释以下统计数据.

也许相关的侧面信息:一些表包含列TEXTMEDIUMTEXT列,并且50%它们中的大约有空值.我做optimize了占用大部分空间的桌子.

  1. 问题: 我如何从Mysql文档中理解data_free:分配的空间由DDL当前未使用的空间确定- 因此在行中基本为空值.这种解释是否正确,如果不正确,它如何确切定义的?

  2. 问题: 我不明白data_free如何在索引和数据长度相结合的情况下变得更大

 

select (sum(data_length) + sum(INDEX_LENGTH))/ 1024 / 1024 as total, 
sum(data_free)/ 1024 / 1024  as free ,
sum(data_length)/ 1024 / 1024 as data, 
sum(INDEX_LENGTH/ 1024 / 1024) as index_data 
from information_schema.tables t
where t.TABLE_SCHEMA = 'foo'
Run Code Online (Sandbox Code Playgroud)

结果:

total | free | data | index_data

19.5469   20.0000   18.1875 1.3594
Run Code Online (Sandbox Code Playgroud)

所以我有20MB data_free19.5MB data+index.怎么可能? …

mysql database storage

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

使用MYSQL Sharding拆分大数TB的表

我知道水平分区......你可以创建很多表.

我已经看到在基于应用程序的分片中,您将在多个数据库服务器上拥有相同的数据库结构.但它不会包含相同的数据.

例如:

Users 1 - 10000: server A
Users 10001 - 20000: server B
Run Code Online (Sandbox Code Playgroud)

用于分片的技术是MySQL-Proxy,例如一些工具(基于MySQL代理)是SpockProxy.我们也可以手动分片.必需的是主表,例如:

-------------------
| userA | server1 |
| userB | server2 |
| userC | server1 |
-------------------
Run Code Online (Sandbox Code Playgroud)

但是这些技术在应用程序级别处理..我想在DB服务器级别解决它..

我们可以透明地使用多个服务器吗?这将允许Mysql表扩展.

在X服务器上创建X表,最终用户通过简单查询获取数据到单个数据库服务器?

总之,我想在单个表中插入16TB的数据,但我没有在单机上有这么大的空间,所以我想安装两个服务器,每个容量为8TB.但是用户查询单个数据库并在后端获取结果可能会使用分片.

我还讨论了一些其他好的解决方案,例如MYSQL Clustering.

有没有人愿意解释,或者有一个好的初学者教程(循序渐进)教你如何跨多个服务器进行分区?

mysql database sharding bigdata

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