Mysql表结构及设计
我有两个表,我的工作方式如下概念...
当任何记录将插入第一个表的“id”时(“id”是唯一的且自动增量),我想使用此 id 值在第二个表中进一步插入(这意味着 id 将是外键)。我应该如何设计我的表?
如果我插入值并进一步获取最后插入的值以再次插入到第二个表中,那么对于单个插入将执行更多查询,这可能需要在 mysql 中执行更多时间。
如果我要创建额外的表(counter_id_table),它将保持自动递增的 id 值。当任何新记录将首先插入时,我将获取“counter_id_table”的值,该值将是我的 id第一个表,该值将是第二个表中的外部 id。当我再次从“counter_id_table”获取值时,我将在一个增量后进行更新。
我应该如何设计我的表以获得更好的执行效果?
I have two tables both i am working like below concept...
When any record will be inserted 'id' of first table ('id' is unique and auto_increment), I want to use this id value for further insertion in my second table (that means id will be foreign key).How should I should to design my table?
If i am inserting values and further fetching last inserted value to again insert in second table then there will more query execute for a single insertion and this may take more time execution in mysql.
If i will make on extra table (counter_id_table) that will keep on id value with auto increment.When any new record will be going to insert first i will fetch value of 'counter_id_table' and this value will be the id of my first table and this value will be foreign id in second table.When i will fetch value from 'counter_id_table' again i will update with after one increment.
How i should to design my table for better execution?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
第一个选项是通常的做法。您可以在插入查询之后使用 MySQL 的
mysql_insert_id()
检索您插入的条目的 ID。不用担心速度或负载,这发生在不到一秒的时间内,MySQL 可以在睡眠时完成此操作。所以你会得到这样的东西:
The first option is how it's usually done. You can use MySQL's
mysql_insert_id()
to retrieve the id of the entry you inserted, right after the insert query. Don't worry about speed or load, this happens in a fraction of a second and MySQL can do this in its sleep.So you'll get something like this: