2016-02-05 37 views
-1

這裏是我的第一篇文章的更正/更新:)不同表中的連續ID

我有一個網站,我可以添加新聞。如果我添加一個新聞條目,它將在每個新聞條目的唯一標識符的表「news」上創建一個數據庫條目。

在每個新聞條目中,我可以添加多個圖片和多個文本部分。對於我添加的每張圖片,它將在具有唯一image_id(自動增量)的表格「news_images」上創建數據庫條目,並從表格「news」中創建id(因此我知道哪個圖像屬於哪個新聞條目)。同樣的程序,如果我添加一個文本部分。

問題是我有:每個新聞條目中的圖片和文本部分都是可拖動的,所以我可以改變他們的位置(上下)。我必須爲數據庫中的每個對象保存每個位置。爲此我添加了一個新表「news_imgid_txtid」。但我仍然不知道如何添加一個連續的ID ..

例子:

  • 我在新聞條目(ID 234)添加圖像。因此,表「news_images」中的image_id將是62 (autoincrement)。
  • 在表「news_imgid_txtid」值62應該是 行「id」(不知道如何做到這一點,但會發現它 出)。
  • 我在新聞條目中添加了一個文本部分(id 234)。所以 text_id表 「news_text」 將是18(自動增量),但應該是63(不知道怎麼 做到這一點)

enter image description here

感謝您的幫助,米施

+0

使用的標記dbms。給我們表格定義。另一方面,爲什麼要麻煩? – jarlh

+0

我不確定我明白你的意思。你能澄清嗎?你的意思是說你希望數據庫中的所有標識符都是唯一的嗎?你想在這裏完成什麼? – David

+0

這是不合邏輯的......'news_image'和'news_text'不應該分享他們的ID ... – Blag

回答

2

國際海事組織爲你的情況,你應該改變表的結構。首先創建一個標題表media_header例如。 media_header表應包含一個id列。比每個表news_image,news_text應具有從news_text.text_idnews_image.image_id列到media_header.id列的外鍵列。比數據庫將保持這個ID作爲連續。

+0

我會試試這個,謝謝你的回答。 – Mischu

+0

還有其他的解決方案,取決於使用的dbms ... – jarlh

+0

@jarlh我不會爭辯是否有更好的:) – Parado

0

如果您嘗試使用跨表格的唯一ID列,則需要使用GUID。有關如何做到這一點的細節將取決於你的SQL引擎。

但是,這是否真的是最適合您的設計尚不清楚。如果你會給我們更多關於的信息,爲什麼你想這樣做,我們可能會指出你朝着更好的方向。