在为约会网站设计MySQL数据库时,我遇到了如何存储引用数据的疑问。当前数据库有33张表,有近32个不同的字段需要进行引用。我们还必须考虑到其中许多元素需要翻译。
在阅读了几种意见之后,我几乎排除了使用枚举,比如:
CREATE TABLE profile (
'user_id' INT NOT NULL,
...
'relationship_status' ENUM('Single','Married') NOT NULL,
...
);
通常我会使用一个参考表,例如:
CREATE TABLE profile (
'user_id' INT NOT NULL,
...
'relationship_status_id' INT NOT NULL,
...
);
CREATE TABLE relationship_status (
'id' INT NOT NULL,
'name' VARCHAR(45) NOT NULL,
PRIMARY KEY ('id')
);
但是如果创建32个表可能会过度设计,所以我正在考虑像这样使用PHP编写代码:
class RelationshipStatusLookUp{
const SINGLE = 1;
const MARRIED = 2;
public static function getLabel($status){
if($status == self::SINGLE)
return 'Single';
if($status == self::MARRIED)
return 'Married';
return false;
}
}
您认为呢?因为我猜这可能会提高查询的性能,并使整个站点的开发更加容易。
谢谢。