【发布时间】:2011-01-18 06:53:10
【问题描述】:
今天早些时候,我问this question,这是因为 A- 我的计划不周和 B- 我完全无视规范化数据库的做法。在过去的 8 个小时里,我阅读了有关规范化数据库和 JOIN 的详细信息,并通过 SQLZoo.com 教程进行了学习。
我开悟了。我了解数据库规范化的目的以及它如何适合我。除了我不完全确定如何从程序的角度执行该愿景。
这是我的旧愿景:1 个名为“files”的表,其中包含一个文件 id 和一个文件 url 以及该文件的适当等级。
新愿景!:1 个“文件”表,1 个“成绩”表,以及一个用于调解的连接表。
但这不是我的问题。这是一个非常基本的问题,我确信有一个明显的答案——当我在“文件”中创建记录时,它会自动分配递增的主键(file_id)。但是,从现在开始,我还需要将该 file_id 写入其他表。因为我没有手动分配那个 id,我怎么知道它是什么?
如果我上传 text.doc 并获得 file_id 123,我怎么知道它获得了 123 以便将其写入“等级”和连接表?我不能做一个 max(file_id) 因为如果你有并发用户,你可能会得到一个不同的 id。我只是不知道如何在没有手动分配的情况下获取 file_id 值。
【问题讨论】:
标签: sql mysql database-design normalization