我希望它的名字是页面地址。例如,如果页面标题为“某些页面”,则其地址应为http://somesite/some_page/。 “some_page” - 系统自动生成的名称。 “some_page” - 是页面的唯一标识符。问题在于将来的用户可以输入一个已经存在的会导致错误的名字。页面URL和数据库组织
有必要为大量数据找到问题决策的最佳变体。
我已经解决了一个问题,如下所示: 数据库中的页面标识符是页面名称和默认等于零的后缀。在页面添加时会检查是否存在。如果此页面不存在,则后缀为0,如果页面存在,则其名称为“some_page”; - 搜索后缀的最大数量,后缀=后缀+1,页面名称变为“some_page_1”。
为此,我在数据库中创建域“后缀”的复合键和“页面名称”:
Table Pages
suffix|pageName |pageTitle
0 |some_page |Some Page
1 |some_page |Some Page
0 |other_page|Other Page
加成页面通过存储过程中出现:
CREATE PROCEDURE addPage (pageNameVal VARCHAR(100), pageTitleVal VARCHAR(100))
BEGIN
DECLARE v INT DEFAULT 0;
SELECT MAX(suffix) FROM pages WHERE pageName=pageNameVal INTO v;
IF v >= 0 THEN
SET v = v + 1;
ELSE
SET v = 0;
END IF;
INSERT INTO pages (suffix, pageName) VALUES (pageNameVal, v, pageTitleVal);
END;
是否有更多的最好的决定?
您是否尝试过查看.htaccess?你不需要这么做,以这种方式创建页面:\ – Tim 2010-04-26 14:48:32
当你选择数据回来,你怎么知道你是否需要'some_page_1'或'some_page_2'? – 2010-04-26 14:57:09
公里,如果我需要some_page_2,我会选择pageName ='some_page'和后缀= 2。 蒂姆,为什么? – shurik2533 2010-04-27 05:41:14