簡體   English   中英

基於另一個表的動態表插入記錄mysql

[英]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擁有postspost鏈接到comments

如果您不想使用這樣的關系模式,請查看NoSQL DB。

您在這里有幾個選擇:

  • 在您的帖子表中添加一個user_id列,在您的評論表中添加一個post_id和user_id列。 然后,您可以設置具有一對多關系的外鍵。

  • 僅使用具有(除了現有的之外)user_id的單個表,然后鍵入列。 類型將定義評論/帖子/等。 可以使用中間表將其定義為映射到CONST的數字,字符串或您認為合適的任何其他方式(中間最佳選項imho)。

  • 改變上面的示例,並使用2個中間表將用戶與帖子匹配,並將評論與帖子匹配(也可能將用戶與評論匹配)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM