【发布时间】:2012-04-20 08:26:57
【问题描述】:
我正在建立一个包含多个表的 MySQL 数据库。有几个表的字段名称相似,但目的不一定相同。
例如,有一个users 表将有一个name 字段,一个category 表将有一个name 字段等等。
我之前看到过这种设置,无论是否有字段名称的前言,所以在上面的示例中使用user_name、cat_name 等。
由于这些都在单独的表中,使用或不使用此前言来构建数据库是否有任何好处?我知道当使用连接并通过 PHP 调用数据时,您必须添加一个 SELECT users.name AS username... 以防止在使用 mysql_fetch_array 时字段相互覆盖。但我不确定使用一种方法是否比另一种更有效?
【问题讨论】:
-
如果您使用的 DBMS 支持“创建域”,那么您提出的数据管理问题最好通过用户名和类别名称是否应基于同一域来解决。答案取决于名称为“XXX”的用户和名称为“XXX”的类别是否以某种方式指代同一事物。这里的问题是语义,而不是格式。
标签: php mysql database database-design