通常,当我在URL中创建需要slu applications的应用程序时,我会通过数据库中的slu query查询以获取内容(当然,在slug字段上有一个索引)。使用典型的LAMP栈(使用PHP &MySQL),从数据库的角度来看,这样做有什么优势或劣势?总是通过id查询并简单地为sluks创建一些排序或路由会更有意义吗?这个应用程序设计是否会带来安全问题?通过slug查询或通过id查询?
我正在使用cakePHP,特别是,如果有任何蛋糕特定的答案,那将不胜感激,但不是必要的。
通常,当我在URL中创建需要slu applications的应用程序时,我会通过数据库中的slu query查询以获取内容(当然,在slug字段上有一个索引)。使用典型的LAMP栈(使用PHP &MySQL),从数据库的角度来看,这样做有什么优势或劣势?总是通过id查询并简单地为sluks创建一些排序或路由会更有意义吗?这个应用程序设计是否会带来安全问题?通过slug查询或通过id查询?
我正在使用cakePHP,特别是,如果有任何蛋糕特定的答案,那将不胜感激,但不是必要的。
stackoverflow.com/questions/ /查询通过塞或 - 查询 - by-id
如果您绝对肯定slug不会改变,您可以使用它。但数字可能更快,更安全(这是肯定的)。
我刚刚在1 000 000行的数据库上运行查询,可以看到ID按230倍的速度加快了速度(但未编入主题)。除此之外,就像Col Shrapnel说的那样,如果你改变主题?你的网址将被打破,你不记得主题的每一个变化。 数字就是数字,计算机与数字工作:) JK
SELECT tid FROM `forum_threads` WHERE subject = "New BMW X5";
Showing rows 0 - 0 (1 total, Query took 0.0230 sec)
SELECT tid FROM `forum_threads` WHERE tid = 19906;
Showing rows 0 - 0 (1 total, Query took 0.0001 sec)
OK所以你说这是更快,更安全。这是有道理的,但你认为你可以解释为什么?我只是好奇。 – Nick 2011-04-01 15:28:41
@尼克,我更新了我的答案。 – 2011-04-01 15:51:09
两件事: 请记住,slu values值通常需要是唯一的。 此外,使用国际化的数据库模式,SQL查询的表需要额外加入(塞通常与语言)
尝试书签你的问题,然后编辑标题,然后利用书签 – 2011-03-31 15:38:26