草庐IT

Normalization

全部标签

mysql - 如何将这些表规范化为 3NF

作为家庭作业的一部分,我被要求根据案例研究创建表格,并且所有表格都必须采用3NF。然而,我已经尝试并尝试理解3NF,但我只是没有掌握它的窍门,希望得到一些帮助。案例研究的要求是针对vert诊所的:允许宠物预约预约记录宠物治疗记录哪位vert进行了治疗记录企业销售的商品,以提供信息,使企业能够生成从供应商处采购的库存list不需要:记录所有销售额到目前为止,我有以下表格:工作人员:|staff_ID|firstName|lastName|gender|address_ID|contactNumber|partTimeOrFullTime|salary|员工地址表:|address_ID|

MYSQL 和规范化 : How to handle lots of optional fields?

我有一个个人资料页面,上面有大约20个可选字段。为了保持规范化,我必须创建20个不同的表,然后使用其中的20个JOINS进行查询。这对我来说似乎有点过头了。这是最好的方法吗?你建议我保持正常化吗? 最佳答案 执行此操作的一个好方法(尽管有点令人困惑,除非您知道发生了什么)是使用与wordpress相同的设计-据我记得它被称为实体属性值(感谢@MattFenwick)。https://stackoverflow.com/tags/eav/info基本想法是,您有两个表,而不是您的20个INNERJOIN表来存储零碎的东西。一个存储你的

mysql - 街道地址的最佳标准化是什么?

今天我有一个表包含:Tablea--------namedescriptionstreet1street2zipcodecityfk_countryID我正在讨论在最快搜索方面规范化这一点的最佳方法是什么。例如。查找按城市或邮政编码过滤的所有行。建议的新结构是这样的:TableA--------namedescriptionfk_streetIDstreetNumberzipcodefk_countryIDTableStreet--------idstreet1street2fk_cityIDTableCity----------idnameTableCountry----------

MySQL:优化包含大量列的表

我的用户表有超过26列,这正常吗?当这个用户表引起我的注意时,数据库已经规范化到第3级。有26列是否可以,或者您在设计我应该做的数据库时是否使用了其他优化技术?更多内容:对表进行分区是什么意思? 最佳答案 26列没什么问题,但如果很少使用,那就不同了。不是使用26列,而是使用较少使用的列并使用序列化字符串对它们进行分组。将字段更改为文本字段,然后在您的代码中您可以反序列化它们并使用它们。如果你需要更新,你更新数组(从你的代码)然后序列化它并将它保存到数据库。 关于MySQL:优化包含大量

mysql - 表格中的规范化/第三范式?

我正在创建一个小型新闻网站,有人建议我看一下规范化,我照做了,虽然我理解它,但我不太清楚它是否与数据库中的所有表相关。例如,我有这个“文章”表,包括:ID-10001Featured-0or1Category-CategoryNameTitle-TitleForTheArticleArticle-Thisisthearticle.....PhotoDescription-Phototogowithblog10001PhotoName-JohnSmithPhotoLink-www.johnsmith.comAuthor-myname@gmail.comKeywords-keyword,k

php - Mysql嵌套选择

从这个问题开始last_question用这张table`id`,`bbs_id`,`user_id`,`like_dislike`(15,4,2,0),(14,4,1,0),(13,3,1,0),(12,2,1,1),(11,1,2,0),(10,1,1,1);我如何才能看到个别用户喜欢或不喜欢的是什么?假设我想要一个包含所有喜欢和不喜欢的汇总表,并在另一列中显示用户x是否喜欢它。这是我试过的查询$user_id=1;SELECTbbs_id,(SELECTlike_dislikeFROMbb_ratingsWHEREuser_id={$user_id})ASthisUsersRat

sql - 建立一个基本表,整数自增主键是标准的吗?

我有一个网络应用程序,我有一个用户的概念,它可能会像这样进入用户表:table:userusername(varchar32)|email(varchar64)|fav_color|...我希望用户名和电子邮件是唯一的,这意味着我不能允许用户拥有相同的用户名或相同的电子邮件。我看到这类示例表总是引入一个整数自动递增主键。不知道为什么这样做,是为了以后通过外键加快查询速度吗?例如,假设我有另一个表:table:gradesusername(foreignkey?)|grade将用户名用作外键是否效率低下?我想做这样的查询:SELECTFROMgradesWHEREusername='jo

MYSQL-为一个用户存储多个电子邮件/地址的最佳设计

我检查了这个问题here但不幸的是,图表的链接无法正常工作,所以我被卡住了。我正在尝试为一个用户(工作、企业、个人等)发送多封电子邮件,但我不确定如何最好地处理这种情况。我想有4个表:user、email、email_type和user_has_email(用户N:M电子邮件)。我做了两张图,但我不知道哪一张更好。如果一个用户的工作和个人电子邮件地址相同(因为我不必将其存储两次),第一个图表对我有帮助。第二种选择也不错,但即使一个用户在工作、业务、个人等方面使用相同的电子邮件,我也必须将电子邮件存储两次或更多次。我打算使用相同的想法来存储地址,它比电子邮件占用更多空间,我认为图1更适合

mysql - mySQL 数据库的自动规范化——怎么做?

我有一个mySQL数据库,其中包含一个包含80列和1000万行的巨大表格。数据可能存在不一致。我想以自动化和高效的方式规范化数据库。我可以使用java/c++/...来完成,但我想尽可能多地在数据库内部完成。我猜数据库之外的任何工作都会大大降低速度。关于如何做的建议?可以从哪些好的资源/教程开始?我不是在寻找关于什么是规范化的任何提示(使用谷歌找到了很多这样的东西)! 最佳答案 您需要研究列以识别“类似”实体并将它们分成单独的表格。最好的情况是,自动化工具可能会识别出某些列具有相同值的行组,但了解数据的人必须决定这些数据是否真正属于

mysql - "practically"足够的数据库规范化级别是多少?

我正在设计一个数据库并且我达到了(据我所知)ThirdNormalForm(3NF)我的一些同事告诉我一个SixthNormalForm!!我想知道如何知道数据库的规范化水平是否足够。 最佳答案 根据我的经验,很少听到有人谈论在实际生产应用程序中超越3NF。这应该足以应对几乎所有情况。 关于mysql-"practically"足够的数据库规范化级别是多少?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c