Pet*_*owe 7 database-design relational-database
我试图权衡一个简单的数据库结构的相对优缺点,例如:
1.
CREATE TABLE x (
my_id INT PRIMARY KEY,
...,
text_attribute_blah TEXT,
text_attribute_blah_blah TEXT
);
Run Code Online (Sandbox Code Playgroud)
VS:
2.
CREATE TABLE x (
my_id INT PRIMARY KEY,
...
)
CREATE TABLE attributes (
my_id INT, /* foreign key to x.my_id */
text_attribute_type INT,
text_attribute TEXT
)
Run Code Online (Sandbox Code Playgroud)
其中attribute_type可能是blah或blah_blah.
选项1提供简单性 - 表更易于读/写; 选项2提供了灵活性(如果我们想要添加另一个属性,例如blah_blah_blah,我们不需要进行架构更改,因此代码更改可能更少.)
对这个难题有正确/错误的答案吗?其中一种选择是否比其他选择更好?你能否指点我进一步阅读可能有助于确定前进的方向?
mar*_*c_s 10
我几乎总是选择#1 - 我只是喜欢在我的表中将属性作为列 - 进行查询,为性能编制索引以及一般处理更容易和更透明.
#2选项称为EAV - 实体属性值 - 它有一些主要缺点 - 请参阅
| 归档时间: |
|
| 查看次数: |
5026 次 |
| 最近记录: |