我想要做的是將產品的數據添加到MySQL 5.1和PHP 5.2.12的數據庫中。如何將數據添加到不同的表格,但保持相同的ID?
我有一張用於一般字段的表格:名稱,說明,價格,購買次數,還有一張與該產品相關的圖像表。
目標是爲每個與其產品相對應的圖像分配相同的ID。例如,如果我將產品添加到主表中,並且其ID設置爲128,那麼我希望圖片表中的所有圖片的ID爲128.
如何執行此操作?
我想要做的是將產品的數據添加到MySQL 5.1和PHP 5.2.12的數據庫中。如何將數據添加到不同的表格,但保持相同的ID?
我有一張用於一般字段的表格:名稱,說明,價格,購買次數,還有一張與該產品相關的圖像表。
目標是爲每個與其產品相對應的圖像分配相同的ID。例如,如果我將產品添加到主表中,並且其ID設置爲128,那麼我希望圖片表中的所有圖片的ID爲128.
如何執行此操作?
你想使用mysql_insert_id();找回剛纔插入的自動編號的ID。然後,您需要在將圖片鏈接到產品的鏈接表中使用該ID。
爲圖像創建一個新的主鍵(例如自動遞增字段),但也使用外鍵來引用產品表。插入如下:
INSERT INTO Images (product_id, ....) VALUES (128, ...)
的圖像應該有一個(可能是自動遞增)它自己的ID,完全獨立於它與相關的產品。
與產品的關聯應該在單獨的列中定義(例如,名爲「product_id」)。
僅當圖像只能與一種產品關聯時纔有效。如果圖像可以有多個協會,這是值得創建一個關聯的表像這樣:
id | image_id | product_id
這種方式,任何圖像可以關聯到任意數量的產品,有可能減少開銷。
創建名爲ProductImage的第三個表。
產品編號,圖片ID
使用此表存儲關係。您並不需要此表中的ID,但您可能會在稍後階段找到該ID的用法。 ProductImageID是該產品/圖像的唯一標識符。
這允許每張圖片代表多個產品。
我從哪裏得到128?我不知道查詢時該產品的ID,因爲我插入了空值,並且它自動遞增。我如何知道使用product_id有什麼價值? [由MindStalker回答] – Atomix 2010-01-21 18:37:53