- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
让我们以关系数据库为例,例如MySQL。为了简单起见,我将专注于重要的事情:有一个包含订单的表,其中包含 order_id
(主键)order_date
和外键 fk_supplier 等字段,引用表 supplier
中的主键。该表还有一个名为 supplier_name
的字段。现在,让我们想象一下,有一个 php 网站显示了表格中的所有订单。表的每一行都包含 order_id
、order_date
和 supplier_name(sql 语句对两个表进行了连接)。到目前为止一切都很好。现在,有人更改了其中一个订单中引用的一个供应商的名称:历史数据变得不真实或错误。我的问题是:防止这种情况的最佳做法是什么?我想到了三种解决方案:
所有这些方法都有优点和缺点。例如,第 2 点看起来很脏,并且违反了关系数据库的所有规则。在我看来,第 3 点通常是可行的方法。但是需要很多努力,编程明智。用户体验/可用性也变得非常糟糕。
我想听听经验丰富的开发人员和数据库设计人员如何处理该问题。
最佳答案
选项 3 的一种形式,其中您有关于供应商信息的开始日期和结束日期。这样,数据始终是准确的(供应商名称在给定时间是正确的)。您还可以做的一件事是创建一个电子表格,每晚将其内容加载到具有供应商信息的数据库中(到 fact_Supplier 表或查找表中)。对供应商的所有编辑都通过此电子表格进行,访问权限仅授予那些负责此类事情的选定人员。如果电子表格中有更改,供应商表中的先前信息将结束日期,并插入包含新信息的新记录。任何更改都会导致这种情况发生,供应商名称、供应商地址等。
关于mysql - 关系数据库 : Current Data vs. 历史数据,最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47179644/
我正在尝试实现此处建议的 redis 解决方案:http://www.slideshare.net/cacois/cois-palkostrata2013 : 这是目前为止我发现的最好的。 我有以下数
只是想知道您是否对关注有意见。 想象一下,我有一个简单的应用程序可以为客户存储发票。 简化发票表是: ID int, NUMBER varchar(20) CustomerID INT 客户数据是:
我正在尝试将 pandas 模块应用于我的代码,以便重新组织从 IB TWS 服务器收到的消息。 代码是 from ibapi.client import EClient from ibapi.wra
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-topic
这个查询对我有用 select * from yahoo.finance.xchange where pair in ("EURUSD","GBPUSD") 可以在以下链接中看到: https://d
我正在尝试学习如何使用 Python、requests 和 BeautifulSoup 从 Coinmarketcap.com 网络抓取 BTC 历史数据。 我想解析以下内容: 1)日期 2)关闭 3
我有一个包含两列(Column_A 和 Column_B)的模型 (Model_A) 我的模型中有以下方法,两个基于 column_A 生成 column_B 的值 Class Model_A < A
让我们以关系数据库为例,例如MySQL。为了简单起见,我将专注于重要的事情:有一个包含订单的表,其中包含 order_id(主键)order_date 和外键 fk_supplier 等字段,引用表
我正在做一个快速的概念验证,以了解从 Google Analytics(分析)中提取历史数据以进一步用于离线数据拼接以生成数据及其分析的整体 View 的过程。我没有找到任何详细的在线文档来了解优缺点
我是一名优秀的程序员,十分优秀!