因此阐述提出的非常可贵之处jous,将多个数据点放在一个数据库列中会产生反效果 您想要的排序做一个sql查询(使用相同的构造jous显示,但没有字符串操作),将会很简单,快速,高效。
要修改此表,你会简单地将下面的列添加到您的表到位作者:
姓
姓氏
中间名
要告诉你如何简单,这是(并使其更容易),这里的代码做到这一点:
ALTER TABLE [tablename]
ADD COLUMN firstname varchar(32)
ADD COLUMN lastname varchar(32)
ADD COLUMN middlename varchar(32)
DROP COLUMN author;
然后镆铘PHP代码如下:
$c->sortby('lastname','ASC');
所以这相当容易完成......如果您仍然需要支持其他作者参考,则创建一个视图,以与未更改表格相同的方式返回作者(如下所示)(注意:您仍然必须更改表名引用,以便它指向的视图,而不是表...如果这将是再大的问题,重命名表,并命名视图一样的旧表是......):
CREATE VIEW oldtablename AS
SELECT firstname+' '+middlename+' '+lastname' ' AS author
FROM newtablename;
注意:如果您确实创建了上述视图,则可能需要添加新表格中的所有其他列(多个图像&媒体列)。 注2:然而,我会补充说,那些理想情况下将在单独的表格中加入一个连接表格,但如果我处于您的位置,我可能会同意,便利可能会超出实用性&未来的可用性....但是如果你没有把他们在不同的表,你不能向这些表添加到这个视图(如加入到新表),并且仍然能够支持现有的代码依赖于旧表&它的结构。
虽然上述都是很容易完成,将与你轻微的调整,这是在使用自定义表更改的最后部分由xPDO反映工作。如果你已经对此感到满意,并知道该怎么做,那么很好。 如果你不是,这是迄今为止对这一主题的最好的文章:http://bobsguides.com/custom-db-tables.html
(是的,这是值得让Bob的代码,那么所有这一切都可以简单地为您生成一个片断,一旦数据库已经作了修改......(记得你可能需要删除现有的架构文件& xpdo相关的类文件&地图文件之前运行鲍勃的生成代码,或更改具有相同的表名的观点一样,将不会生效) 。
希望这有助于你(或旁边的人问类似的问题)
来源
2014-10-29 18:33:27
MER
谢谢你 - 。这个作品也谢谢你给出性能建议。我不想重写网站的其他部分 - 这很难看,但它很有用。 – Johannes 2012-03-06 21:23:06
另外要注意,任何人阅读本:镆铘允许你很容易标准化的数据分成不同的表,你的情况为图像和媒体。这将允许您为每个作者添加无限制的图像和媒体字段,并且可以更快地进行搜索,例如此问题中的搜索。他们可以很容易地检索使用连接(如'$ C-> innerJoin( 'ImageClassName', 'ImageClassAlias');') – okyanet 2012-03-09 15:29:32