gpt4 book ai didi

database-design - 数据库设计 : flexibility vs. 简单

转载 作者:行者123 更新时间:2023-12-04 09:38:02 25 4
gpt4 key购买 nike

我试图权衡一个简单的数据库结构的相对优缺点,例如:

1.

CREATE TABLE x (
my_id INT PRIMARY KEY,
...,
text_attribute_blah TEXT,
text_attribute_blah_blah TEXT
);

对比:

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
)

其中 attribute_type 可以是 blah 或 blah_blah。

选项 1 提供了简单性——表格更容易读/写;选项 2 提供了灵活性(如果我们想添加另一个属性,例如 blah_blah_blah,我们不需要进行架构更改,因此代码更改可能更少。)

这个难题有正确/错误的答案吗?这些选项之一是否被认为比其他选项更好?你能指出我可能有助于确定前进方向的进一步阅读吗?

最佳答案

我几乎总是选择 #1 - 我只是更喜欢将属性作为我的表中的列 - 使查询、索引性能和一般处理更容易和更透明。

#2 选项称为 EAV - 实体属性值 - 它有一些主要缺点 - 请参阅

  • Five simple database design errors you should avoid - EAV 方法在此列表中排名第 3
  • Joe Celko: Avoiding the EAV of destruction
  • 关于database-design - 数据库设计 : flexibility vs. 简单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3117084/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com