草庐IT

Normalization

全部标签

mysql - 将平面文件加载到规范化的 MySQL 数据库中

从平面文件加载数据到MySQL数据库,然后通过外键创建表之间关系的最快方法是什么?例如...我有一个格式为的平面文件:[INDIVIDUAL][POP][MARKER][GENOTYPE]"INDIVIDUAL1","CEU","rs55555","AA""INDIVIDUAL1","CEU","rs535454","GA""INDIVIDUAL1","CEU","rs555566","AT""INDIVIDUAL1","CEU","rs12345","TT"..."INDIVIDUAL2","JPT","rs55555","AT"我需要加载到四个表中:IND(id,fk_pop,na

php - 如何使用规范化删除冗余?

我有存储所有客户信息的XML。每当我的PHP代码运行时,它都会将客户数据从XML插入到数据库中。这是表格。不是所有的客户都是web的,所以我把所有的客户信息直接保存到一个名为“customer”的表中。客户:customer_idint(40)primarykeyCustomerAccountNumbervarchar(60)CustomerAccountNamevarchar(255)AccountBalancedoubleInvAddressLine1varchar(500)Repvarchar(20)为了存储“网络客户”登录名和用户名,我有一个名为“Web_customers”的

mysql - 是否规范化数据库?只读 MyISAM 表,性能是主要优先级(MySQL)

我正在将数据导入到future的数据库中,该数据库将包含一个静态MyISAM表(只能从中读取)。我选择MyISAM是因为据我所知,它可以更快地满足我的要求(我对MySQL/SQL一点经验都没有)。该表将包含各种列,例如ID、姓名、性别、电话、状态...以及国家/地区、城市、街道列。现在的问题是,我应该为最后3列创建表(例如Country:Country_ID、Country_Name)并通过ID在主表中引用它们(规范化...[?]),还是将它们作为VARCHAR存储在主表(显然有重复)?我主要关心的是速度——因为不会写入表,所以数据完整性不是优先事项。唯一的操作是选择特定行或搜索符合特

mysql - 在一对一关系中,我应该删除表的 id 列之一吗?

我在MySQL中有以下2个表:客户(身份证,名字,姓氏......)奖金(Id,CustomerId,值(value),...)关系是一对一的,每个客户只有一个奖金。(CustomerId在奖金表中是唯一的)问:我应该删除Bonus表的Id列吗?(我想知道为什么或为什么不) 最佳答案 我会删除Bonus.Id库并使Bonus.CustomerId成为PK。这样做将消除对Bonus.CustomerId列的唯一约束的需要,因为它现在将是一个PK。如果没有Bonus.Id列,任何看表的人都会更清楚地看到一对一。您不需要Bonus.Cus

mysql - 如何解析三向多态关联?

首先让我声明我使用的是MySQL(非事务性),并且无法更改。此外,为了简洁明了,我简化了此处的表格。在此示例中,“类(class)”由其内部属性和具有其自身属性“阅读”的外部属性组成。“阅读”有它自己的关键依赖属性和三个不同的外部属性(阅读来源)。我想避免这里出现的多态关联,但我无法理解它。在此示例中,表“Reading”中的“sourceId”将包含来自三个表“ExternalURL”、“InternalURL”和“Book”之一的ID。此外,“polytable”字段将包含上述“id”来自的表名。谁能花点时间解释一下如何解决这个维护RI,或者是否有可能为了效率而保留它?感谢您的时间

sql - 规范化 "Toxi"方式真的值得吗? ( 3NF )

我正处于数据库设计的早期阶段,所以还没有什么是最终的,我正在为我的线程使用“TOXI”三表设计,它有可选的标签,但我情不自禁地觉得加入并不是真正必要的,也许我只需要依赖posts中的一个简单标签列即可。我可以在其中存储类似,的varchar的表.总结一下:在我的posts中为2个标签表增加额外的左连接而不是仅仅有一个标签列是否值得?表。有什么方法可以优化我的查询吗?架构CREATETABLE`posts`(`post_id`INTUNSIGNEDPRIMARYAUTO_INCREMENT,`post_name`VARCHAR(255))Engine=InnoDB;CREATETABLE

MySQL表设计和规范化协助

注意:此问题已于2012年11月19日改写以进行澄清。我通常在这里没有太多问题,但在为客户站点设计新产品系统时遇到了困难。我们提供一套产品,每个客户都可以卖给他的客户。我们可能会随时添加新产品,但它们都遵循以下格式:类别类型产品使用之前的结构举一个真实世界的例子:棒球装备手套罗林斯耐克美津浓bat伊斯顿路易斯维尔强击手足球装备鞋子耐克锐步阿迪达斯足球耐克种苗威尔逊....上面的列表显然还在继续,而且可能要大得多,但它给出了总体思路。目前,我将特定客户可以销售的产品类型存储在一个平面格式表中,如下所示:ID|clientID|categoryID|typeID|productID|cus

php - 这是 1NF 失败吗?

在考虑1NF失败时,没有重复的元素组,如果你想对重复组的数量设置限制怎么办?例如,您希望学生只列出3个电话号码。不再。有如下表格会被视为1NF失败吗?Student1Phone1Phone2Phone3Sally111-1111222-2222333-3333John555-5555999-9999NULL您将创建一个限制。这是可接受的、高效的数据库设计吗?将电话号码放在一个单独的表中是否更好,因为1NF失败需要?如果它在单独的表中,您将如何创建每个用户3个数字的限制? 最佳答案 不,它没有标准化。当存在空值时,您的表中将浪费空间,

mysql - 设计城市、州、国家/地区表的最佳方式是什么?

我需要帮助设计我的国家、城市、州表格。我将从我的表中提供示例数据,以便您可以更好地帮助我解决我的问题。这是我的国家表:Country______codenameUSUnitedStatesSGSingaporeGBUnitedKingdom这是我的城市表:City_____idcountrycitystate1USBirminghamAlabama2USAuburnAlabama..29GBCambridgeNULL30GBDevonNULL我的问题是,唯一拥有状态字段的国家是美国。所有其他城市的值为空。我的临时解决方案是只为美国创建一个特殊的城市表,然后所有其他国家/地区都有另一个没

mysql - 数据库设计 : User Profiles like in Meetup. com

在Meetup.com中,当您加入聚会组时,通常需要为该特定组完成个人资料。例如,如果你加入一个电影聚会群,你可能需要列出你喜欢的电影类型等。我正在构建一个类似的应用程序,用户可以在其中加入各种群组并为每个群组完成不同的个人资料详细信息。假设2种可能性:用户可以创建自己的群组并定义要询问加入该群组的用户的详细信息(因此,有些动态-可能表明至少需要EAV设计)开发人员现在决定要创建哪些组,并指定向加入该组的用户询问哪些详细信息(这意味着配置文件详细信息将被预定义并“硬编码”到系统中)对此类数据建模的最佳方式是什么?更详细的示例:“电影观众”小组要求其成员指定以下内容:姓名生日(用于计算成