- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在构建一个 PHP 应用程序以使用客户数据预填充第三方 PDF 帐户表单,但我陷入了数据库设计。
当前的表格有大约 70 个字段,这似乎太多而无法设置为单独的列,特别是因为某些(即公司/信托信息)根据客户所需的帐户类型不相关。
我已尝试规范化,但似乎会有很多连接,并且还需要针对多个地址等内容进行多个子查询。
这也意味着在更新时需要大量额外的查询来检查行是否存在,以确定脚本是否需要执行 INSERT、DELETE 或 UPDATE,而如果它全部在一行中,它基本上只是每次都是更新。
不确定这是否有帮助,但这里是大多数字段的列表:
id, account_type, account_phone, account_email, account_designation, account_adviser, account_source, account_complete, account_residential_unit_number, account_residential_street_number, account_residential_street_name, account_residential_street_type, account_residential_suburb, account_residential_state, account_residential_postcode, account_postal_unit_number, account_postal_street_number, account_postal_street_name, account_postal_street_type, account_postal_suburb, account_postal_state, account_postal_postcode, individual_1_title, individual_1_firstname, individual_1_middlename, individual_1_lastname, individual_1_dob, individual_1_occupation, individual_1_email, individual_1_phone, individual_1_unit_number, individual_1_street_number, individual_1_street_name, individual_1_street_type, individual_1_suburb, individual_1_state, individual_1_postcode, individual_2_title, individual_2_firstname, individual_2_middlename, individual_2_lastname, individual_2_dob, individual_2_occupation, individual_2_email, individual_2_phone, individual_2_unit_number, individual_2_street_number, individual_2_street_name, individual_2_street_type, individual_2_suburb, individual_2_state, individual_2_postcode, company_name, company_date, company_unit_number, company_street_number, company_street_name, company_street_type, company_suburb, company_state, company_postcode, trust_name, trust_date, settlement_bank, settlement_account, settlement_bsb
这最多需要处理大约 200,000 个应用程序,一旦数据进入数据库,它就不会经常更改,如果有的话 - 不确定这是否相关?
所以真的只是想找出最聪明的设计方法,即使它只是一个需要进一步研究的名称或主题。
最佳答案
一般来说,您可以将数据库分为两大类:
OLTP 系统
在线事务处理系统通常是写入密集型的,即与数据读取相比有很多更新。该系统通常是所有范围的业务用户使用的日常应用程序,例如数据捕获、管理等。这些数据库通常被规范化到极端,然后在某些领域为了性能提升而某些士气低落。
OLAP/DSS系统:
联机分析处理是通常类似于大型数据仓库系统的数据库。用于支持分析事件,例如数据挖掘、数据立方体等。通常,与 OLTP 相比,信息由一组更有限的用户使用。这些数据库通常非常非规范化。
请在此处阅读有关这些内容和主要区别的简短说明。 OLTP VS OLAP
关于您的 INSERT/UPDATE/DELETE
点,请阅读有关 MySQL ON DUPLICATE KEY UPDATE
语句的信息,这将轻松为您解决该问题。在大多数数据库系统中,它被称为 MERGE
操作。
现在我不明白你为什么担心 JOINS。我有数百万 (500 000 000+) 行的表,我将这些表与其他表连接起来,这些表的大小也很大,而且查询运行得非常快。因此,设计一个数据库来消除连接并不是一个好主意。
我的建议是:
如果在设计 OLTP 系统时尽可能规范化,然后在需要时进行非规范化以提高性能。对于 OLAP 系统,请查看星型模式等,甚至不必先对其进行规范化。哦,顺便说一下,大多数 OLAP 系统通常使用 OLTP 系统作为数据源。
关于MySQL 规范化或非规范化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18325061/
在 Windows 世界中,什么是正确的名称。具有导出函数的老式 C++ DLL?不是 COM DLL,也不是 .NET DLL。我们以前通过调用 LoadLibrary() 和 GetProcAdd
目前我正在使用javaEE7,我有一个场景如下。在我的 JSF Web 应用程序中,我有一个事件监听器(不是 JSF 事件),当事件调用时,它会执行某些操作,然后将这些信息更新到我的 Web 应用程序
这不是 AJAX 请求/响应回调问题... 我正在使用 Dojo 1.5 构建网格。我正在尝试 dojo.connect具有功能的扩展/收缩按钮。我的问题是 grid.startup()在创建实际 D
非 Webkit Opera 是 very specific在某些功能中,因此通常通过 JavaScript 检测到 the following way . 但是,Opera Next 几乎是 Goo
我已查看以下链接中给出的所有日志,但未能找到 IP 地址: https://developer.couchbase.com/documentation/server/3.x/admin/Misc/Tr
我有一个命令行程序,它根据一组源文件生成一个我想在我的 Android gradle 构建 (A) 中使用的 jar 文件。这个命令行程序只是将一个 jar 文件存储在磁盘上的一个目录中。 我如何创建
下面的 htaccess 命令将所有非 www 转移到 http www RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^
我正在使用自定义链接器脚本将内核镜像分为两部分。第一个是普通代码和数据,第二个是初始化代码和不再需要时将被丢弃的数据。初始化部分也不像内核本身那样在地址空间之间共享,因此如果 fork() 仍然存在(
这个问题在这里已经有了答案: Several unary operators in C and C++ (3 个答案) What is the "-->" operator in C++? (29
假设我有一个类设置如下: class A { public: virtual void foo() { printf("default implementation\n"); } }; c
#include using namespace std; int main(int argc, char *argv[]) { int i=-5; while(~(i)) {
近期,百度搜索引擎变化无常,很多企业站、行业站、门户站、论坛等站点遭到了降权,特别是比比贴分类信息网直接遭到了拔毛,这对于广大站长来说是一种打击,也是各个企业、行业的打击。 至今,很多网站已经恢复
我现在正在使用 IBM TPM v1332 + IBM TSS v1470 并尝试将一些基本关键字/密码存储到 TPM 上的非 volatile 内存中。我找到了两种方法。一种是创建一个密封对象并使用
我的 PHP 脚本中有一个正则表达式,如下所示: /(\b$term|$term\b)(?!([^)/iu 这与 $term 中包含的单词匹配,只要前后有单词边界并且它不在 HTML 标记内即可。 但
我想显示用户名称地址(请参阅 www.ipchicken.com ),但我唯一能找到的是 IP 地址。我尝试了反向查找,但也没有用: IPAddress ip = IPAddress.Parse(th
只有 UI 线程能够显示到屏幕上,还是其他线程也可以这样做? 最佳答案 不,您只能直接从 UI 线程访问 UI,但您可以编码来自其他线程的结果,例如使用 Control.Invoke 或 contro
我正在使用现代 Excel 滚动条(不是旧的 ActiveX 类型,即开发人员 > 插入 > 表单控件 > 滚动条)并且想检测它的值何时更改。我找不到有关此类对象的更改事件的任何信息。您可以在单击时分
当我使用这段代码时 IE 6 确实正确使用了指定的样式表,但所有其他浏览器在应该使用基本上声明的样式表时会忽略这两种样式表,如果您不是 IE,请使用此样式表。 有什么想法吗? 最佳答案 n
我想指定 2 mssql 表之间的关系。 付款类别和付款。 paymentcategory.id 加入 payout.category 列。 在 payout.json 模型中 我指定为外键:id,
我正在尝试制作非 volatile UDF,但似乎不可能。因此,这是我非常简单的test-UDF: Option Explicit Dim i As Integer Sub Main() i = 0
我是一名优秀的程序员,十分优秀!