mysql 关于 zend 的数据库逻辑建议
mysql Database logic advise on zend
我有员工 table 和培训 table,我希望员工登录后只看到培训建议的 his/her 部门。
这是好方法吗,用逗号分隔建议的部门?
并且查询将是来自培训 table 的 select,其中员工部门喜欢建议的部门?
epmloyeetable
id Name Department
1 John Finance
2 Michael Logistics
training table
id name suggested_department
1 php IT, Finance
2 vba IT, Logistics
3 java Logistics, Finance
第二个问题是我应该使用数字而不是部门名称来创建部门table吗?这次我必须将超过 2 个 table 连接在一起,这会是问题吗,而我将使用 zend 框架
epmloyeetable
id Name Department
1 John Finance
2 Michael Logistics
training table
id name suggested_department
1 php 1, 2
2 vba 1, 3
3 java 3, 2
departmenttable
id Name
1 IT
2 Finance
3 Logistic
这次查询将 select 来自培训 table 其中员工部门 +',' = 建议部门?
因为部门 ID 中会有 1 和 11 所以我应该使用 + 'comma' 而 selecting ?
您的第二个建议比第一个好,但通常将 CSV 数据存储到 SQL table 中并不是最佳选择,原因有很多。我提出以下设计,employeetable
和 departmenttable
table 保持不变:
training table
id name suggested_department
1 php 1
1 php 2
2 vba 1
2 vba 3
3 java 3
3 java 2
这是您离开 training
table 规范化 的替代方案。如前所述,存储 CSV 数据并不理想,举一个例子,如果您只想做一个简单的查询,询问哪个培训将 IT 作为建议的部门。使用 CSV 数据,您必须深入了解 CSV 才能找到答案,而使用我建议的 table 您可以进行简单的连接,例如
SELECT *
FROM training
WHERE suggested_department = 1;
使用规范化的 table 可以轻松连接到其他 table,并且还允许使用索引,这可以使日常查询更快。
我有员工 table 和培训 table,我希望员工登录后只看到培训建议的 his/her 部门。 这是好方法吗,用逗号分隔建议的部门? 并且查询将是来自培训 table 的 select,其中员工部门喜欢建议的部门?
epmloyeetable
id Name Department
1 John Finance
2 Michael Logistics
training table
id name suggested_department
1 php IT, Finance
2 vba IT, Logistics
3 java Logistics, Finance
第二个问题是我应该使用数字而不是部门名称来创建部门table吗?这次我必须将超过 2 个 table 连接在一起,这会是问题吗,而我将使用 zend 框架
epmloyeetable
id Name Department
1 John Finance
2 Michael Logistics
training table
id name suggested_department
1 php 1, 2
2 vba 1, 3
3 java 3, 2
departmenttable
id Name
1 IT
2 Finance
3 Logistic
这次查询将 select 来自培训 table 其中员工部门 +',' = 建议部门? 因为部门 ID 中会有 1 和 11 所以我应该使用 + 'comma' 而 selecting ?
您的第二个建议比第一个好,但通常将 CSV 数据存储到 SQL table 中并不是最佳选择,原因有很多。我提出以下设计,employeetable
和 departmenttable
table 保持不变:
training table
id name suggested_department
1 php 1
1 php 2
2 vba 1
2 vba 3
3 java 3
3 java 2
这是您离开 training
table 规范化 的替代方案。如前所述,存储 CSV 数据并不理想,举一个例子,如果您只想做一个简单的查询,询问哪个培训将 IT 作为建议的部门。使用 CSV 数据,您必须深入了解 CSV 才能找到答案,而使用我建议的 table 您可以进行简单的连接,例如
SELECT *
FROM training
WHERE suggested_department = 1;
使用规范化的 table 可以轻松连接到其他 table,并且还允许使用索引,这可以使日常查询更快。