我最近在空余时间开始做自由PHP + MySQL开发,以补充我从C#/ SQL Server代码编写的全职工作中获得的收入。我注意到的一个与数据库相关的重大差异之一是MySQL有一个枚举数据类型,而SQL Server则没有。这是MySQL枚举数据类型的适当使用吗?
当我注意到enum数据类型时,我立即决定压扁我的数据模型,以支持使用枚举的大表,而不是使用许多较小的表来表示离散实体和一个大的“桥”类表。
我目前正在使用的网站是用于唱片公司的。我只有一张表来存储标签的发行版,即“发行版”表。我通常在任何地方都使用枚举,我通常会将外键用于单独的表格 - 艺术家名称,标签名称和其他几个。用户可以通过后端编辑这些枚举列。我所看到的使用文本字段进行枚举的主要优点是艺术家名称将被重用,这将改善数据完整性。我也看到了在数据库中拥有较少表的优势。顺便说一下,我还有一个额外的表格和一个桥接表格 - 有一个“标签”功能可以为特定版本添加标签,并且由于这是一种多对多的关系,所以我觉得离散标签表和表桥加入标签的版本是合适的
有从未遇到之前数据库中的数据类型ENUM,我不知道如果我作出明智地使用这项功能,或者是否有问题我没有预见作为这种数据架构的结果,可能会回来咬我。有经验的MySQL'ers,你觉得怎么样?
你可以发表一些代码,所以我可以在http://thedailywtf.com上提交吗? – 2011-03-18 02:39:38
恐怕我不符合thedailywtf的资格,因为这是我的第一个php/mysql网络应用程序,并且dailywtf试图让初学者很好。我会承认,我很荣幸能够在该网站上! – SuperNES 2011-03-18 13:24:17
但你是一个经验丰富的C#/ SQL服务器编码器 - 跆拳道! – 2011-03-18 14:49:48