[英]Mysql table structure and designing
我有兩個桌子,我都像下面的概念一樣工作...
當將任何記錄插入第一個表的'id'('id'是唯一且為auto_increment)時,我想使用此id值在第二個表中進一步插入(這意味着id將為外鍵)。設計我的桌子?
如果我要插入值並進一步獲取最后插入的值以再次插入第二個表中,則對於單個插入將執行更多查詢,這可能需要更多時間在mysql中執行。
如果我要在額外的表(counter_id_table)上進行自動遞增,則將保持id值。當要插入任何新記錄時,我將獲取'counter_id_table'的值,該值將是我的第一個表的id這個值將是第二個表中的外來ID。當我再次從'counter_id_table'中獲取值時,我將以一個增量進行更新。
我應該如何設計表以更好地執行?
第一種選擇是通常如何進行。 您可以在插入查詢之后,使用MySQL的mysql_insert_id()
檢索插入的條目的ID。 不用擔心速度或負載,這只需要不到一秒鍾的時間,MySQL可以在睡眠中做到這一點。
因此,您將獲得如下內容:
`user`
- id
- name
- etc
`user_stuff`
- id
- userId // foreign key
- stuff
- etc
$sql = "INSERT INTO user (name) VALUES ('foo')";
mysql_query($sql) or die(mysql_error());
$userId = mysql_insert_id();
$sql = "INSERT INTO user_stuff (userId, stuff) VALUES ($userId, 'stuff')";
mysql_query($sql) or die(mysql_error());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.