因此闡述提出的非常可貴之處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