从头开始编写mySQL数据库

时间:2013-11-19 02:04:14

标签: php mysql sql database windows

我最近有一个实习,涉及编写一个sql数据库,并不知道从哪里开始。

数据库将保存大量电气产品的信息:包括但不限于电池使用,品牌,年份,颜色,尺寸,原产国。数据库的主要任务是使用一些使用上述信息的公式输出几个与能量相关的东西。我也将为它构建一个简单的gui。该数据库将仅在Windows计算机上访问,不超过100人,可能在20左右。

组织通常不提供实习机会,特别是不给程序员(他们基本上都是电气工程师);我通过坚持要求在那里工作的亲戚来研究如何组织他们忽略的一些产品。换句话说,我不能真正问他们这个问题的指导,因为他们不是程序员,这就是我走到这里以了解我在哪里开始的原因。

我离题了 - 我主要担心的是:

  1. 建议阅读或观看什么?提示,技巧?
  2. 如何为此设置服务器?什么硬件/带宽/等。我需要吗?
  3. 如何设置数据库?
  4. 对于gui客户端,我决定看看它是一个窗口,显示使用嵌入到php中的sql构建的网页。这是一个好主意吗?这样做的推荐阅读?有什么替代方案?
  5. 您会推荐哪些安全措施?推荐阅读?
  6. 我有:Microsoft的mySQL服务器的几个版本,mySQl和PHP的课堂体验,Visual Studio的几个版本,访问旧PC以进行测试(包括切换操作系统,硬件等),访问相当强大的PC(不可修改),无限带宽。

    任何帮助都将不胜感激,谢谢你们!

1 个答案:

答案 0 :(得分:1)

  1.   

    建议阅读或观看什么?提示,技巧?

    我建议您在设计阶段花费相当多的时间,甚至在触摸计算机之前。只需抓取一些废纸和一支铅笔,然后开始绘制各种“屏幕”,这些屏幕可能会在各个阶段(从菜单到输入和输出)暴露出来;向目标用户展示它们,看看您对应用程序的理解是否符合他们期望/要求的功能;考虑他们何时,何地,如何以及为何使用该应用程序;改进你的设计。

    然后您将有一个(模糊的)功能规范,您可以从中回答下面提出的一些进一步的问题,以便您可以开始研究和确定技术规范:在这个阶段,您可以选择特定的架构(基于Web?),或某些工具和技术(PHP和MySQL?)。然后,您可以确定更多资源(教程?),以帮助实现。

  2.   

    如何为此设置服务器?什么硬件/带宽/等。我需要吗?

    除了用户数量之外,您的帖子几乎没有显示可以回答此问题的服务器负载。

    数据库存储多少数据(“大量电子产品”非常模糊)?需要执行哪些操作(“使用一些公式......输出几个与能源相关的东西” 很模糊)?会有哪些不同类别的用户以及他们将执行哪些活动?这些活动多久会将数据写入数据库并从数据库中读取数据(例如,每月写一次10KiB;每秒读取10GiB,数千次)?虽然您预计会有20个用户,但它们是否同时处于活动状态,或者在任何给定时间通常只有一个或两个用户?应用程序的重要程度(就所需的可靠性/性能而言)?

    也许,就目前而言,只是install MySQL,看看你的表现如何?

  3.   

    如何设置数据库?

    同样,你应该如何设计架构?这取决于您打算执行的操作。但是,一个好的起点可能是产品表:

    CREATE TABLE products (
      product_id  SERIAL,
      power       INT UNSIGNED COMMENT 'watt usage',
      brand       VARCHAR(255),
      year        INT UNSIGNED,
      color       VARCHAR(15),
      size        INT UNSIGNED,
      origin      CHAR(2) COMMENT 'ISO 3166-1 country code'
    );
    

    根据您的要求,您可能希望创建更多表格并建立它们之间的关系。

  4.   

    对于gui客户端,我决定看看它是一个窗口,显示使用嵌入到php中的sql构建的网页。这是一个好主意吗?这样做的推荐阅读?有什么替代方案?

    基于网络的PHP应用程序当然是一种选择,您可以找到大量有用的免费资源(tutorialstoolslibrariesframeworks,等)在线。它也是高度可移植的(因为几乎每个设备都有一个能够与您的应用程序交互的浏览器,尽管确保平滑的跨浏览器兼容性和良好的跨设备用户体验可能会有点痛苦。)

    有许多替代方案,几乎可以使用任何/每种语言,运行时环境和体系结构组合,您可以提及:从Java servlet到本机Windows应用程序,从iOS应用程序到中间的所有内容,选择是无限的。但是,最好的建议可能是坚持你最熟悉/熟悉的(只要它能满足应用程序的功能要求)。

  5.   

    您会推荐哪些安全措施?推荐阅读?

    这是另一个非常开放的问题。如果您正在开发一个网络应用程序,我至少让您自己了解(如何防御)SQL injectionXSS attacks以及managing user account security的技巧}。这些领域中的每一个都是非常大的主题 - 而且在一个人开始考虑托管平台或物理环境的安全性之前。