我試圖將我的表中設置爲INT的列中的逗號分隔字符串添加到列中。 我用它來引用一個類別ID,但現在我想添加更多的可能性不止一個類別。在SQL中輸入以逗號分隔的字符串到INT列中
想到我可以通過輸入一個字符串來實現這一點:1,2,3而不是1,但我得到錯誤,在這個單元格中更改的值不被認爲是有效的。
這是否意味着我需要將該列更改爲VARCHAR而不是INT?
我試圖將我的表中設置爲INT的列中的逗號分隔字符串添加到列中。 我用它來引用一個類別ID,但現在我想添加更多的可能性不止一個類別。在SQL中輸入以逗號分隔的字符串到INT列中
想到我可以通過輸入一個字符串來實現這一點:1,2,3而不是1,但我得到錯誤,在這個單元格中更改的值不被認爲是有效的。
這是否意味着我需要將該列更改爲VARCHAR而不是INT?
不,這意味着您應該設置合適的表來支持一對多的關係。也就是說,您需要單獨的表,而不是varchar列中的虛假數據表示。
爲什麼?那麼,SQL有這個偉大的列表數據結構,稱爲表。另外:
您所描述的內容聽起來像是多對多的關係。解決這個問題的正確方法不是將一堆數據填充到單個單元格中。這是一場噩夢。您嘗試建模的數據稱爲關聯實體。你處理這個問題的方式稱爲橋接表。這意味着如果您創建具有兩列的第三個表(ProductID和CategoryID)。然後,爲每個產品的每個類別添加一行到該表。 –
謝謝Sean我現在理解得好一點。我會查找關聯條目以更好地理解。 – UserSN