Php 哪种编码更有效?

Php 哪种编码更有效?,php,mysql,performance,Php,Mysql,Performance,我有一个圣经项目,我需要一些专家的输入,以确定哪一个在页面中显示结果更快更有效 我的圣经表目前只包含3个字段?id、韵文代码和韵文内容 为了让我能够在文字中展示合适的圣经书和诗句(如创世记1:1),我正在对诗句代码进行转换,包括66个类似于 select (verse_code) { case 1: echo "Genesis"; case 2: echo "Exodus"; ... case 66: echo "Revelation"; } 我可以这样保存它,或者我可以添加新的列book_n

我有一个圣经项目,我需要一些专家的输入,以确定哪一个在页面中显示结果更快更有效

我的圣经表目前只包含3个字段?id、韵文代码和韵文内容

为了让我能够在文字中展示合适的圣经书和诗句(如创世记1:1),我正在对诗句代码进行转换,包括66个类似于

select (verse_code)
{
case 1: echo "Genesis";
case 2: echo "Exodus";
...
case 66: echo "Revelation";
}
我可以这样保存它,或者我可以添加新的列book_name,并输入每个对应诗节的书名。这相当于31103行

性能方面,这两种方法之间的速度更快。我应该保留我的案例陈述吗?我应该输入31103行的书名吗

测试代码在这里。 要使用它,请尝试输入Gen x:x,其中x是章节和诗句以及本书的前3个字母。样本:Gen 1:1或Exo 2:2

文本框位于左下角


谢谢

最好是在查询中使用查找表,不管怎么说,您都是在往返数据库,对于这样连接数据的数据库,它的设计目的是:

CREATE TABLE verses (verse_id INT PRIMARY KEY AUTO_INCREMENT,book_id INT NOT NULL, chapter INT NOT NULL,verse INT NOT NULL, verse_content TEXT NOT NULL, FOREIGN KEY(book_id) REFERENCES books(book_id)) ENGINE = InnoDB;

CREATE TABLE books(book_id INT PRIMARY KEY AUTO_INCREMENT,book_name VARCHAR(100)) ENGINE = InnoDB;
在verses表中,您可以看到一个book_id字段,该字段用作to books(因此您可以确定它链接到一本现有的书),此后您可以在查询verses中的数据以及books中的book_名称时使用该字段

然后,您可以使用指定books book_id必须是您在诗句中找到的图书id的查询条件进行查找,并且您的查询将自动返回正确的图书标题

 SELECT book_name,chapter,verse,verse_content FROM verses,books WHERE books.book_id = verses.book_id;
Jeff Atwood的这篇文章将为您提供一个好的、清晰的概念,它们对您意味着什么。我真的建议你调查一下

作为一个额外的好处,因为您可能不是为了自己的使用而写这篇文章,通过将可视化数据放在数据库中从代码中抽象出来,您可以将这一方面(数据输入和数据更正)交给其他完全不懂(底层)编码的人

如果你输入了一个错别字,把它叫做波特而不是彼得,你希望人们不得不修改你的源代码吗?或者,在你的代码之外给他们一个漂亮的界面,让他们把它改成彼得,这样会更安全吗


它还允许您将工作分配给更多的人,让他们都插入数据,而不会相互干扰或干扰您的代码。

使用数组而不是开关大小写。@twaddington php with mysql。这是使用case select@nhahtdh的工作演示。你说的使用数组是什么意思?你能进一步解释吗?谢谢查尔斯。我已经给你的帖子贴上了标签,所以你应该可以多看一些。您可能想发布更多的代码,以便我们能给您提供更好的建议。@Charles Wayne:这没有任何意义。不应显示任何数字,并且不需要使用
case
语句。发出
选择
并迭代结果以打印它们。