我正在使用PHP,MySql。
示例:
$type = array(
"owner",
"agent",
"representative",
);
在DB中存储的首选方法是什么?
使用键值存储它。使用
重新创建上面的代码$type = array(
"OWNER" => "owner",
"AGENT" => "agent",
"REPRESENTATIVE" => "representative",
);
然后将值存储为“OWNER”,“AGENT”。
我倾向于使用方法2,因为对我来说它增加了可读性。
方法1
方法2(ENUM)
最佳做法是什么?你们用的是什么?
答案 0 :(得分:3)
如果您使用的是一组相对有限的值,请使用ENUM
数据类型。它将允许您以人类可读的形式进行读写,但在幕后,它通常会将其存储为int。
答案 1 :(得分:2)
我更喜欢方法1.性能方面,它比方法2更好。如果您关注可读性,我会创建一个名为permission_types
的表:
id | value
1 Owner
2 Agent
然后,您可以加入该表,并且在您不搜索字符串时具有可读性和性能。此外,如果您愿意,可以轻松添加更多权限类型。
答案 2 :(得分:2)
如果您的问题是存储在数据库中的正确方法,那么答案将是通过名为normalization的过程的索引值。创建一个permission_types
表,如果需要,还可以创建一个桥表。如果你有一个表users
,你可以添加一个表user_permission_types
,它将userID
列作为user
表的外键,以及一列permissionID
}作为permission_types
表的外键。这两个列一起将成为user_permission_types
表的主键。
这样做可以消除数据库中的所有冗余。