Questions tagged «normalization»

17
始终拥有一个自动增量整数主键是一种好习惯吗?
在我的数据库中,我倾向于养成使用自动递增的整数主键的习惯,该主键带有id我制作的每个表的名称,以便对任何特定的行进行唯一的查找。 这是一个坏主意吗?这样做有什么弊端吗?有时我会拥有多个指标喜欢id, profile_id, subscriptions这里id是唯一的标识符,profile_id链接到国外id一的Profile表等 还是在某些情况下您不想添加这样的字段?

3
创建新的数据库表而不使用枚举数据类型是否浪费资源?
假设我提供4种服务类型(它们不太可能经常更改): 测试中 设计 程式设计 其他 假设我有60-80个实际服务,每个服务都属于上述类别之一。例如,“服务”可以是“使用技术A的测试程序”,并且类型为“测试”。 我想将它们编码到数据库中。我想出了一些选择: 选项0: 使用VARCHAR直接直接编码的业务类型为字符串 选项1: 使用数据库enum。但是,枚举是邪恶的 选项2: 使用两个表: service_line_item (id, service_type_id INT, description VARCHAR); service_type (id, service_type VARCHAR); 我什至可以享受参照完整性: ALTER service_line_item ADD FOREIGN KEY (service_type_id) REFERENCES service_type (id); 听起来不错,是吗? 但是我仍然必须对事物进行编码并处理整数,即在填充表时。或者在填充或处理表时必须创建精心设计的程序或数据库结构。即,在直接处理数据库或在编程端创建新的面向对象的实体并确保我正确操作它们时,可以使用JOIN。 选项3: 不使用enum,不使用两个表,而只使用一个整数列 service_line_item ( id, service_type INT, -- use 0, 1, 2, 3 (for service …

6
数据库规范化后是否还需要索引
完成良好的归一化之后,还需要对表建立索引吗?这将如何影响性能?良好的规范化后,它甚至会以某种方式影响性能吗? 如果您已经具有主键和外键,通常会索引哪些列? 规范化数据库似乎已经有效。但是,我可能已经跳过了索引如何影响数据库。这仅在使用查询时有效吗?如何运作/执行并改善数据库?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.