0

我在一家小型生物技术公司工作,我们将大量数据存储在 Google Docs 电子表格中。这对很多事情都很好,但对于某些类型的信息(例如,我们有库存的细胞系以及它们所在的冷冻瓶和盒子),它确实不是最好的格式。我已经自学了一点 MySQL 和 PHP,并设法创建了一个存储相关信息的基本数据库和一个能够显示它的简单 Web 界面。当然要有用,它需要某种类型的过滤/搜索功能,这就是我有点困惑的地方。

对于任何给定的搜索,我都知道如何为它编写一个 MySQL 查询,以及如何从组成用户将提供的过滤器的字段/谓词/值元组中获取它,但我不太确定确切应该进行什么级别的过滤。现在,我基本上在数据库中为将呈现给用户的每个“表”设置了一个视图(视图是必要的,因为呈现给用户的信息来自多个数据库表,并且执行了一个或多个连接)。然后我有一个 PHP 对象,它将在给定数据库和视图名称的情况下创建基本查询,如有必要,附加一个 WHILE 子句和所有过滤内容(例如,将“WHERE box_number = ?”附加到准备好的语句中,并将数字 211 存储在当我调用执行函数时要传递的数组),然后运行查询并将结果显示为 HTML 表。我计划扩展对象以将特定功能构建到不同的表中,例如box number字段是一个超链接,当您单击它时,它将带您进入显示冷冻箱内容的页面。

不过,我只是在过去几周内学习了 PHP 和数据库,所以我不确定这是否是实现这一目标的最佳方式。我的室友在 Cisco 做这类事情,他建议使用存储过程是更好的选择。我一直在研究这个,但我不确定是否可以向存储的过程传递任意数量的参数,就像我需要实现过滤一样。我还看到一些消息来源说最好只获取整个表/视图并在 PHP 中进行过滤。

那么,是否有“标准”或“最佳”方式来实现这一目标?对于这个项目,表格不会很大,最多可能有几百个条目。所以性能真的不是问题。大多数情况下,我只需要一种方法,其中一切都相当灵活,并且可以在数据库结构发生变化时轻松更新(将来可能会在大多数表中添加更多列/字段)。我可能可以让这些方法中的任何一种起作用,但我想知道哪一种可能最适合我的情况,所以我最终不需要在以后重新工作。

4

0 回答 0