4

我正在建立一个包含多个表的 MySQL 数据库。有几个表的字段名称相似,但目的不一定相同。

例如,有一个users表会有一个name字段,一个category表有一个name字段等等。

我之前已经看到这个设置有或没有字段名称的前言,所以在上面的例子中使用user_namecat_name等等。

由于这些都在单独的表中,无论有没有这个前言来构建数据库有什么好处吗?我知道当使用连接并通过 PHP 调用数据时,您必须添加一个SELECT users.name AS username...以防止字段在使用时相互覆盖mysql_fetch_array。但我不确定使用一种方法是否比另一种方法更有效率?

4

3 回答 3

1

这取决于您的商店做什么或您的偏好。没有什么前缀可以使这变得更好。就我个人而言,我只是将其保留为名称:Users.Name并且所有Orders.NameProducts.Name包含具有不同对象类型的元组。

归根结底,您希望保持一致。如果您更喜欢 acat_user_前缀,请与您的设计保持一致,并为所有对象类型包含此前缀。对我来说少即是多。

于 2012-04-06T19:27:28.473 回答
0

一个缺点是如果有人愚蠢到使用自然连接(你可以猜到我发现这是一种不好的做法,但 mysql 确实允许这样做,所以你需要考虑是否会发生这种情况)你可能最终会加入那些具有相同名称的字段意外地。

于 2012-04-06T19:30:04.850 回答
0

这实际上只是一个偏好问题。我个人更喜欢使用 just 的方法name

但是需要注意的一件事是,如果您正在执行任何SELECT * FROM ...查询(您不应该这样做;始终明确选择字段),您最终可能会选择错误的数据。

于 2012-04-06T19:27:31.363 回答