[英]Dynamic table based on another table insert record mysql
我想為個人資料創建一個過帳系統。 我創建了一個數據庫來存儲所有用戶的帖子,每個用戶都有一個表。
我創建了另一個數據庫來存儲每個帖子的評論。 我的邏輯是在評論數據庫中創建每個表,並在其中存儲每個評論。
有邏輯鏈接帖子和評論。 我以為使用mysql的上一個插入ID,但它會返回上一個ID,這會產生錯誤,因為其中一個帖子沒有表格。
還有其他辦法嗎?
另一種方法是擁有一個用於發布的表,並使用userid
列在表中標識一個用戶發布。 要查找特定用戶的所有帖子,只需按該用戶的ID查詢即可。 通過這樣做,你有一個單一的表來管理,你可以很容易地進行查找。 如果為每個用戶創建單獨的表,則必須創建其他邏輯以首先弄清楚要使用哪個表。 如果刪除了用戶,則刪除表,而不是簡單地從公用表中刪除一些行。
注釋表也采用相同的邏輯-為postid',
commentid ,
userid添加列。 同樣,單個表包含所有注釋。 要查找特定帖子的評論,您可以執行簡單的查詢,例如
select comment_text
from comments_table
where postid = ?
使用MySQL的全部目的是利用實體之間的關系,即user
擁有posts
, post
鏈接到comments
。
如果您不想使用這樣的關系模式,請查看NoSQL DB。
您在這里有幾個選擇:
在您的帖子表中添加一個user_id列,在您的評論表中添加一個post_id和user_id列。 然后,您可以設置具有一對多關系的外鍵。
僅使用具有(除了現有的之外)user_id的單個表,然后鍵入列。 類型將定義評論/帖子/等。 可以使用中間表將其定義為映射到CONST的數字,字符串或您認為合適的任何其他方式(中間最佳選項imho)。
改變上面的示例,並使用2個中間表將用戶與帖子匹配,並將評論與帖子匹配(也可能將用戶與評論匹配)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.