0

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

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

我不清楚的是如何命名我的链接表(如果我理解正确,它将保存它们链接的 2 个表中的外键,是否有任何命名约定或建议?我想到了诸如“contacts_link_gender”、“contacts_link_status”之类的东西, ETC。

还有一个关于使用 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…..
4

1 回答 1

1

为单独的数据创建单独的字段。不要仅仅因为。

这个例子违反了很多规则,尤其是零规则、一规则或无限规则,尤其是大多数数据库规范化规则,所以我认为如果这本书被推荐为好的数据库设计,那么阅读这本书弊大于利。

对于 MySQL 和一般 SQL 的学术方法,您可能需要了解更多关于如何组织数据的理论,然后通过学习相关的 MySQL 语句来学习应用它们。CREATE TABLE,INSERT INTO并且SELECT FROM是这里的基础。

在这一点上, Martin Fowler可能对您来说有点过于紧张,但您可以通过示例学习正确的规范化技术。您可以尝试查找有关该主题的一些参考资料

更好的方法可能是将您的架构发布在代码审查网站上并获得有关您的特定设计的反馈。

于 2013-10-29T04:35:36.140 回答