链接表和substring_index的命名约定

时间:2013-10-29 04:19:58

标签: mysql indexing substring naming

我有一个名为my_contacts的dbase,包含诸如f_name,l_name,位置,兴趣,搜索,性别,状态等项目。这是一个学校项目,我只是在学习mysql。我创建了表格来分割项目,如由m和f组成的性别表;因为会有多对一的关系,而我分手的其他人则是寻求,兴趣,地位(已婚,离婚等),兴趣和寻求(朋友,新工作等)。

我很清楚我的pks都需要是什么(我在ea表中创建了一个带有id_gender,id_status,id_seeking等命名约定的pk。

我不清楚的是如何命名我的链接表(如果我理解正确将从他们链接的2个表中保存我的外键,是否有任何命名约定或建议?我想过像“contacts_link_gender”这样的东西, “contacts_link_status”等

还有一个很好的教程,关于使用mysqls“创建一个新的eer模型”,我正在使用murachs最新的mysql书,但是虽然一本好书但他们往往会为那些只是学习的人留下很多东西,教学是向我们展示,但他非常简短而且我不是程序员,从来不想成为这个学位的最后一个班级。

哦还有一件事,当我拿着像兴趣这样的字段或者使用substring_index来搜索和分割它们时,我会在我的某些字段中获得欺骗(interest_1,interest_2)并且我不知道如何修复它,我会在底部包含我的子字符串代码 再次感谢提前! 欢迎任何和所有建议

SELECT  distinct id, 
        first_name, 
        last_name,
        substring_index(location, ' ', 2) as city,
        substring_index(location, ' ',-1) as state,
        substring_index(interests, ' ', 1) as interest_1,
        substring_index(interests, ' ', -1) as interest_2,
        substring_index(seeking, ' ', 3) as seeking_1,
        substring_index(seeking, ' ', -3) as seeking_2
FROM my_contacts…..

1 个答案:

答案 0 :(得分:1)

为单独的数据创建单独的字段。不要因为这样做而把东西堆成一个字段。

此示例违反了很多规则,特别是Zero, One or Infinite Rule和大多数database normalization rules,所以我认为如果这是一个好的数据库,那么通过阅读该书会带来更多的弊大于利。设计。

对于MySQL和SQL的学术方法,您可能需要了解更多关于如何组织数据的理论,然后通过学习相关的MySQL语句来学习应用它们。 CREATE TABLEINSERT INTOSELECT FROM是此处的基础知识。

此时

Martin Fowler对您来说可能有点过于激烈,但您可以通过示例学习正确的规范化技术。您可以尝试找一些references on the subject

更好的方法可能是在the code review site上发布您的架构,并获得有关您的特定设计的反馈。