我有很多表將使用url'slug'查找。例如'新聞'和'博客'都有'slug'字段,它被定義爲教義數據庫模式中的唯一字段。Sql:跨多個表(教條/ symfony)獨特的字段限制(slu 012)
有沒有什麼辦法可以在這兩個表格上擴展這種獨特性:例如,如果有一篇新聞報道爲slug =「好故事」,那麼如果我嘗試將其作爲博客文章的子彈輸入,就會失敗?
感謝 湯姆
我有很多表將使用url'slug'查找。例如'新聞'和'博客'都有'slug'字段,它被定義爲教義數據庫模式中的唯一字段。Sql:跨多個表(教條/ symfony)獨特的字段限制(slu 012)
有沒有什麼辦法可以在這兩個表格上擴展這種獨特性:例如,如果有一篇新聞報道爲slug =「好故事」,那麼如果我嘗試將其作爲博客文章的子彈輸入,就會失敗?
感謝 湯姆
取決於你在哪裏開發。如果您正在維護應用程序,那麼我同意Bob Jarvis的建議。看起來像一堆斷開的代碼。
你所描述的是一個屬於它自己的表的實體。考慮到這一點,我就可以對它進行建模。
tbl_slug -------------------- slug slug_type -primary key (slug, slug_type) -constraint - slug is unique to table tbl_news -------------------- id fk_slug_slug fk_slug_type -constraint - fk_slug_type = 'news' tbl_blog -------------------- id fk_slug_slug fk_slug_type -constraint - fk_slug_type = 'blog'
據我所知,你不能有一個獨特的contstraint跨越表。處理它的一種方法是創建一個SLUG表,其中'slug'字段將成爲主鍵。您需要在'新聞'和'博客'上嘗試將新的'slug'插入到SLUG表中的INSERT觸發器。如果'news.slug'或'blog.slug'已更新,您可能還想在'news'和'blog'上放置UPDATE觸發器來更新SLUG.slug。
我希望這會有所幫助。
您是否得到了您正在尋找的答案?如果是這樣,你能接受嗎?如果不是,你能澄清你還在尋找什麼嗎?通常情況下,你提供的信息越多,他可以幫你的可能性就越大。 – MaasSql 2010-07-01 00:38:26