database-design相关内容

整数vs数据库中的字符串

在数据库中定义数据类型时,我一直在选择是使用整数还是字符串存储某些“数字”数据时遇到问题。 建立但 其他 地址 Book ,并且有一个邮政编码字段。如果邮政编码始终是 4位数字,那么我将其存储为哪种数据类型?整数还是字符串?技术上它是一个整数,但我不做任何类型的计算,我只是吐在一个表。如果我想通过邮政编码对表进行排序,你的意见会有所改变吗? 现在,我不蠢。我确实认识到对整数的有效需求, ..
发布时间:2017-03-13 23:15:03 其他数据库

日期范围重叠检查约束

我在sql server 2005中有一个简单的表,有3列:DateStart,DateEnd和Value。我试图设置一个“表检查约束”,以避免插入重叠记录。例如,如果在此表中存在DateStart = 2012-01-01(January 1月)和DateEnd 2012-01-15(1月15日)的记录,则Check约束必须避免插入具有DateStart = 2012-01-10( no car ..

具有8千万条记录和添加索引的表需要超过18小时(或永远)!怎么办?

简要回顾一下发生了什么。我正在处理7100万条记录(与其他人处理的数十亿条记录相比不算多)。在另一个主题中,有人建议我的集群的当前设置不适合我的需要。我的表结构是: CREATE TABLE`IPAddresses`( `id` int(11)unsigned NOT NULL auto_increment , `ipaddress` bigint(20)unsigned default ..
发布时间:2017-03-13 23:03:15 数据库

什么是实现软删除的最好的方法?

目前正在处理一个项目,我们必须为大多数用户(用户角色)实现软删除。我们决定在数据库中的每个表上添加一个“is_deleted ='0'”字段,如果特定用户角色在特定记录上命中一个删除按钮,则将其设置为“1”。 为了以后的维护,每个SELECT查询将需要确保它们不包括is_deleted ='1'的记录。 是否有更好的解决方案软删除? 更新:我还应该注意到,我们有一个审计数据库跟踪 ..
发布时间:2017-03-13 23:02:10 其他数据库

数据库设计:计算帐户余额

如何设计数据库来计算帐户余额? 1)目前我从交易表中计算帐户余额 在我的交易表我有“说明”和“金额”等。 然后,我会将所有的“金额”值,将解决用户的帐户余额。 > 我向我的朋友展示了这个,他说这不是一个好的解决方案,当我的数据库增长减慢? ??他说我应该创建单独的表来存储计算的帐户余额。如果是这样,我将保留两个表,而且它的风险,帐户余额表可能不同步。 有任何建议吗? ..
发布时间:2017-03-13 22:55:47 数据库

非正规化以什么方式提高数据库性能?

我听说了很多关于反规范化的问题,这是为了提高某些应用程序的性能。但我从来没有尝试过任何相关的事。 所以,我只是好奇,在归一化DB的地方使性能更糟,或换句话说,什么是反规范原则? 如果我需要提高性能,如何使用这种技术? 解决方案 反规范化是一种时空折衷。规范化数据占用较少的空间,但可能需要连接构造所需的结果集,因此需要更多的时间。如果它是非规范化的,数据在几个地方复制。然后它占用 ..

数据库:查询地理位置数据的最佳性能方式?

我有一个MySQL数据库。我将数据库中的家庭存储在数据库中,并且只对数据库执行一次查询, 但我需要此查询才能执行超快 box geo latitude&经度。 SELECT * FROM homes WHERE geolat BETWEEN ???和??? AND geolng BETWEEN ???和??? 如何最好的方式来存储我的地理数据,以便我可以执行这个查 ..
发布时间:2017-03-13 22:54:57 数据库

第一次数据库设计:我是否有办法?

背景 我是第一年CS学生,我在爸爸的小生意上兼职工作。我在现实世界的应用程序开发中没有任何经验。我已经在Python中编写了脚本,在C中有一些课程,但是没有这样的。 我爸爸有一个小型的培训企业,目前所有的课程都安排,记录和跟进通过外部Web应用程序。有一个导出/“报告”功能,但它是非常通用的,我们需要具体的报告。我们没有访问实际的数据库来运行查询。我被要求设置自定义报告系统。 我 ..

如何设计一个表的列不固定的模式

我想设计一个表格的列不固定的模式。例如:我有一个Employee表,其中表的列不是固定的和变化的(Employee的属性不是固定的和变化的)。 Employee表本身的空列,即没有规范化 不要添加可空列,而是在其各个表中分隔这些列ex:if Address是要添加的列,然后创建表Address [EmployeeId,AddressValue]。 创建表ExtensionColu ..
发布时间:2017-03-13 22:48:42 其他数据库

库存管理与股票期权

我正在尝试创建库存管理模式,其中我可以跟踪与产品相关的各种选项的库存。产品可以有任意数量的选项,但在本例中,我将使用“size”和“color”选项。 CREATE TABLE shop_options( option_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, option_name VARCHAR , PRIMARY KEY(op ..
发布时间:2017-03-13 22:46:10 数据库

单个或多个数据库

SQL Server 2008数据库设计问题。 我定义了一种服务的体系结构,网站用户将在其拥有的多个网站上管理大量数据(平均100MB,每个站点最多1GB)。我正在考虑是否拆分数据库,使核心站点管理表(用户,付款,联系方式,登录详细信息,产品等)保存在一个数据库中,并且与客户自己的网站相关的数据库保存在单独的数据库。 我看到一个可能的收获,我可以分配硬件架构,以提供更多的肉在网站数据库 ..
发布时间:2017-03-13 22:45:44 数据库

主键允许NULL - 为什么和在哪个DBMS?

继续我的问题“为什么使用不null主键'在TSQL中?“ ... 正如我从其他讨论中理解的,一些RDBMS(例如SQLite, MySQL )允许主键中的“unique”NULL。 为什么这是允许的,它如何有用? 背景:我相信这有利于沟通 注意 ul> MySQL已修复并返回到“NOT NULL PK”列表。 SQLite已添加(感谢Paul Hadfield)为 ..

如何设计多租户mysql数据库

让我们说,我需要设计一个数据库,为多家公司托管数据。现在为了安全和管理目的,我需要确保不同公司的数据被正确隔离,但我也不想启动10个mysql进程托管10个公司的数据在10个不同的服务器。使用mysql数据库的最好方法是什么。 解决方案 多租户数据库有多种方法。 每个租户一个数据库。 共享数据库,每个 租户一个模式。 共享数据库,共享模式。 http://msdn.micros ..
发布时间:2017-03-13 22:37:49 数据库

解密数据库模式

我最近继承了维护一个设计不好的数据库的工作,设计人员无法提出任何问题。我有一对夫妇在不久的将来我的方式。 尝试找出表之间的关系,没有任何视觉帮助或数据库图是很难的。 我想知道为此推荐什么工具。我知道Visio,但我希望有一些很好的开源/免费软件应用程序。我不需要它来改变数据库。只需阅读它,并创建一些视觉帮助,以帮助我了解事情如何布局,并设法想出设计师如何考虑数据如何关联。 额外的 ..
发布时间:2017-03-13 22:32:54 其他数据库

时间数据库设计,带扭曲(实时vs草稿行)

我正在寻找实现对象版本控制与需要有活的和草稿对象的额外的扭曲,并可以使用从某人的经验在这一点,因为我开始怀疑,如果它是可能没有潜在可怕的黑客。 为了这个例子,我将它分解为标签的帖子,但我的用例是更一般的(涉及缓慢变化的维度 - http://en.wikipedia.org/wiki/Slowly_changing_dimension )。 假设你有一个posts表,一个tags表和一 ..

选择最好的主键+编号系统

我们正在试图为我们正在创建的资产系统提出一个编号系统,在办公室里就这一主题进行了热烈的讨论,因此我决定向SO的专家咨询。 考虑数据库设计下面什么是更好的选择。 示例1:使用自动代理键。 ================= ================= ==== Road_Number(PK)Segment_Number(PK) =============== === ..
发布时间:2017-03-13 22:29:59 其他数据库

从数据库获取事件

我不太熟悉数据库以及他们在CRUD操作之外提供的内容。 我的研究使我得到触发器。基本上它看起来像触发器提供这种类型的功能: (来自维基百科) 通常有三个触发事件会导致触发器触发: INSERT事件(正在将新记录插入到数据库中)。 UPDATE事件 (已删除)。 我的问题是:有一些方法,当一个记录被更新/删除/插入使用某种触发语义时,我可以通过数据库中的Java ..
发布时间:2017-03-13 22:29:31 Java开发

使用整数列在数据库中存储美国邮政编码是个好主意吗?

从第一眼看,我会有两个基本选择,可将邮政编码存储在数据库表: 文本(可能最常见),即 char(5)或 varchar(9)以支持+4扩展 数字,即32位整数 如果我们假设没有国际关注,这两个都将满足数据的要求。在过去,我们一般只是走文本路线,但我想知道,如果有人做相反的事情?从简单的比较看,整数方法看起来像两个明显的优点: 它的本质是自动限制为数字只有(而没有验证的文本风格可 ..

在数据库中存储时间(hh:mm)的最佳方式

我想在数据库表中存储时间,但只需要存储小时和分钟。 我知道我可以使用DATETIME并忽略日期的其他组件,但是没有存储比我实际需要的更多的信息,最好的方法是什么? 解决方案 您可以将其存储为午夜过去的分钟数的整数: 0 = 00:00 60 = 01:00 252 = 04:12 然而,你需要编写一些代码来重构时间,但这不应该是棘手的。 > ..
发布时间:2017-03-13 22:26:21 数据库