数据库设计 – 数据库设计:灵活性与简单性
发布时间:2020-05-24 12:41:35 所属栏目:MsSql 来源:互联网
导读:我试图权衡一个简单的数据库结构的相对优缺点,例如: 1. CREATE TABLE x ( my_id INT PRIMARY KEY, ..., text_attribute_blah TEXT, text_attribute_blah_blah TEXT); VS: 2. CREATE TABLE x ( my_id INT PRIMARY KEY,
|
我试图权衡一个简单的数据库结构的相对优缺点,例如: 1. CREATE TABLE x (
my_id INT PRIMARY KEY,...,text_attribute_blah TEXT,text_attribute_blah_blah TEXT
);
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
)
其中attribute_type可能是blah或blah_blah. 选项1提供简单性 – 表更易于读/写;选项2提供了灵活性(如果我们想添加另一个属性,例如blah_blah_blah,我们不需要进行架构更改,因此代码更改可能更少.) 对这个难题有正确/错误的答案吗?其中一种选择是否比其他选择更好?你能指点我进一步阅读可能有助于确定前进的方向吗? 解决方法我几乎总是选择#1 – 我只是喜欢在我的表中将属性作为列 – 使查询,性能索引和一般处理更容易和更透明.#2选项称为EAV – 实体属性值 – 它有一些主要缺点 – 请参阅 > Five simple database design errors you should avoid – EAV方法在此列表中排名第3 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- SQLSERVER中union,cube,rollup,cumpute运算符使用说明
- sql-server – 只安装SSIS而不是整个SQL Server系统?
- sql-server-2008 – 动态sql错误:’CREATE TRIGGER’必须是
- sql-server – T-SQL的漂亮打印机?
- Meteor:上传图像并以base64字符串形式保存到数据库
- SQLServer Execpt和not in 性能区别
- sql – 当Twitter说他们的整个数据库在RAM中时意味着什么?
- sql-server – 在SQL Management Studio 2012中创建新服务器
- SQL Server 在指定数据库的所有表的所有列中搜索给定的值
- sql – 如何将数据库图从一个服务器移动到另一个服务器
