gpt4 book ai didi

mysql - 表格规范化

转载 作者:太空宇宙 更新时间:2023-11-03 11:12:01 25 4
gpt4 key购买 nike

我正在尝试使用 VB.Net 和 MySQL 为其数据库创建一个简单的注册程序。这是我的基本信息的简单表格

enter image description here

但是,我正在尝试提高我在表格规范化方面的基础知识,这就是为什么我将日期字段分开以避免,比如说在某一天,重复插入相同的日期。我的意思是,当一天有 50 个人注册时,它只会在 tblRegDate 表中添加一个日期(记录),而不是在一个表中将其添加 50 次。有什么办法吗?在 VB.Net 和 MySQL 中可以吗?或者更确切地说,我应该添加或修改某些字段吗?或者我应该在 VB.Net 中提出条件?上面的表格是我 friend 教我的,但我发现它并没有消除冗余。请给我任何说明或引导我到有此简单教程的站点。提前致谢!

这是我的 MySQL 代码:

CREATE TABLE tblInfo(
Number INT AUTO_INCREMENT,
LastName VARCHAR(45),
FirstName VARCHAR(45),
MiddleName VARCHAR(45),
Gender ENUM(M,F),
BirthDate DATE,
PRIMARY KEY(Number));

CREATE TABLE tblRegDate(
IDRegDate INT AUTO_INCREMENT,
Date TIMESTAMP,
Number INT,
PRIMARY KEY(IDRegDate),
FOREIGN KEY(Number) REFERENCES tblInfo(Number));

最佳答案

正如我所见,在这种情况下,您没有分隔单个字段的优势。你会失去很多性能。

表规范化并不是没有任何冗余值。更多的是关于“分离关注点”

同样重要的是不要在你的数据库中出现爆炸式的复杂性。单独的单个填充最终会出现在一个没有人能够理解的数据库中。

问题是:是否有更多关于注册的信息?例如网页,IP,.....

你应该有两个表,例如“Person”和“Registration”。然后你会有两个语义不同的东西,不应该混淆。

您可以通过 google 找到很多示例和信息。和维基百科 http://en.wikipedia.org/wiki/Database_normalization

关于mysql - 表格规范化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7845668/

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