我是CS的第一年学生,我兼职为我爸爸的小生意做准备.我没有任何实际应用程序开发经验.我用Python编写脚本,用C编写一些课程,但没有这样的.
我父亲有一个小型培训业务,目前所有课程都通过外部网络应用程序进行安排,记录和跟进.有一个导出/"报告"功能,但它非常通用,我们需要特定的报告.我们无权访问实际数据库来运行查询.我被要求建立一个自定义报告系统.
我的想法是创建通用CSV导出并导入(可能使用Python)它们每晚都在办公室中托管的MySQL数据库中,从那里我可以运行所需的特定查询.我没有数据库方面的经验,但了解非常基础知识.我已经阅读了一些关于数据库创建和普通表单的内容.
我们可能很快就会开始拥有国际客户,因此我希望数据库在发生这种情况时不会爆炸.我们目前还有几家大公司作为客户,有不同的部门(例如ACME母公司,ACME医疗保健部门,ACME身体护理部门)
我提出的架构如下:
我在一张纸上"设计"(更像是潦草书写)模式,试图将其标准化为第三种形式.然后我把电源插头插上到MySQL Workbench和它使人们都非常适合我:
(点击查看全尺寸图片)
替代文字http://maian.org/img/schema.png
谢谢你的时间
mysql database schema database-design database-normalization
在为数据库(例如MySQL)设计模式时,会出现是否完全规范化表格的问题.
一方面连接(和外键约束等)非常慢,另一方面,您获得冗余数据和不一致的可能性.
这里的"优化最后"是正确的方法吗?即创建一个由书本标准化的数据库,然后查看可以非规范化的内容以实现最佳速度增益.
对于这种方法,我担心的是,我将采用可能不够快的数据库设计 - 但在那个阶段重构模式(同时支持现有数据)将非常痛苦.这就是为什么我很想暂时忘记我所学到的关于"正确"RDBMS实践的一切,并尝试一次"平台"方法.
这个数据库是否会插入重量会影响决定吗?