我想问你路由器的最佳解决方案。
我的数据库(文章,页面,类别等)中有一些表都有ID。
我想为每个人生成特定的URL,例如。 /en/article/25-This-is-an-test-article
。
但是如何摆脱 / article , / page ,......?用户不希望看到它 - 它只会增加网址的长度......
我的第一个想法是简单的路由器表:
CREATE TABLE `router` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`type` varchar(50) NOT NULL,
`entity_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
但是有一个致命的问题 - 不可能为enitity_id列设置外键,因为它应该引用更多列,这在SQL中是不可能的。
我的问题是: 你认为我应该坚持使用那个解决方案(并忽略外键) 或者我应该忘记它并在URL中附加类型?
答案 0 :(得分:5)
我希望
/en/article/55-something
成为/en/55-something
- 最好的表现,最好和最干净的方式(问题是 在哪里以及如何保存55-something是一篇文章的信息,而不是 页面)
该信息的最佳位置就在URL中,这样您就不必使用脆弱的,最佳猜测的查找。
简短的回答:你已经正确地做到了。