我是CS的第一年学生,我兼职为我爸爸的小生意做准备.我没有任何实际应用程序开发经验.我用Python编写脚本,用C编写一些课程,但没有这样的.
我父亲有一个小型培训业务,目前所有课程都通过外部网络应用程序进行安排,记录和跟进.有一个导出/"报告"功能,但它非常通用,我们需要特定的报告.我们无权访问实际数据库来运行查询.我被要求建立一个自定义报告系统.
我的想法是创建通用CSV导出并导入(可能使用Python)它们每晚都在办公室中托管的MySQL数据库中,从那里我可以运行所需的特定查询.我没有数据库方面的经验,但了解非常基础知识.我已经阅读了一些关于数据库创建和普通表单的内容.
我们可能很快就会开始拥有国际客户,因此我希望数据库在发生这种情况时不会爆炸.我们目前还有几家大公司作为客户,有不同的部门(例如ACME母公司,ACME医疗保健部门,ACME身体护理部门)
我提出的架构如下:
我在一张纸上"设计"(更像是潦草书写)模式,试图将其标准化为第三种形式.然后我把电源插头插上到MySQL Workbench和它使人们都非常适合我:
(点击查看全尺寸图片)
替代文字http://maian.org/img/schema.png
谢谢你的时间
mysql database schema database-design database-normalization
对于我的Programming 102类,我们被要求提供在Linux下编译和运行的C代码.我的硬盘驱动器上没有足够的空间来安装Linux和Windows,因此我使用cygwin编译我的程序.
我必须提供的最新程序编译并在cygwin下正常运行.它在Linux下编译很好,但执行中途会产生分段错误.我向给我们上课的研究生解释了这一点,他说cygwin的GCC版本允许编写和执行更粗糙的代码.
我通过谷歌找到的少数参考文献尚无定论.我找到的一个帖子说Linux下的seg故障原因是内存泄漏.为什么这不会影响cygwin版本?
我会使用大学的计算机,但我不能在他们身上使用Subversion,这会严重阻碍我的努力.(我是编码的新手,通常需要能够恢复到X修订版).
cygwin的GCC版本是否真的对它编译的代码更"松懈"?如果是这样,编码时是否有任何明显的问题需要注意?是否有任何替代方法可以编写将在Linux下运行的代码?
编辑
谢谢你的回复.我在原帖中没有明确表示:我的代码中有一个错误对我来说非常重要(我对编程很陌生,毕竟C语言真的很绿).我的TA暗示cygwin的GCC是一个不太可靠的编译器 - 比起在GNU/Linux下发现的代码要运行得更多.我发现这很奇怪,所以在互联网上搜索,但实际上找不到任何对这个事实的引用.
不仅仅是责怪编译器和我的代码,我想知道程序在Windows下运行并在Linux下崩溃的原因是什么.回复:在这方面说明了Windows/Linux下的不同内存管理器和堆/堆栈布局.
结论是cygwin的GCC和GNU/Linux一样"好",它是底层操作系统/纯粹的运气,我的错误程序运行在一个而不是另一个是非常正确的吗?
关于发布源代码,这是一个家庭作业,所以我更愿意自己找到问题,如果可能的话:)
编辑2
我接受了jalf的答案,因为它讨论了什么使程序在Windows下而不是在Linux下运行,这是我真正想知道的.感谢所有贡献的人,他们都是非常有趣和内容丰富的回复.
当我发现问题并修复它时,我会上传一个包含这个非工作版本的所有源代码的zip文件,万一有人好奇地看到我到底做了什么:)
编辑3
对于那些有兴趣看到代码的人,我发现了问题,这确实是由于指针.我试图从函数返回一个指针.我试图返回的指针正在函数内部声明,因此在函数执行后被销毁.问题代码在第22-24行注释掉.
随意嘲笑我的代码.
/**
* Returns array of valid searches based on current coordinate
*/
void determine_searches(int row, int col, int last_row, int last_col, int *active_search){
// define coordinate categories and related valid search directions
int Library0[] = {2, 3, 4, -1};
int Library1[] = {4, 5, 6, -1};
int Library2[] = {2, 3, 4, 5, 6, -1};
int Library3[] = {0, 1, 2, …Run Code Online (Sandbox Code Playgroud) 我没有for循环,我想从一个方法返回5个整数.这可能吗?你能告诉我一个例子吗?
我想一个接一个地返回值.我搜索了很多例子,但是他们都展示了yield使用for循环返回值的方法,并且一些解释说yield没有循环就不可能使用关键字.