标签: normalization

当两个表格非常相似时,它们何时合并?

我有活动和照片,然后评论两者.现在,我有两个评论表,一个用于与事件相关的评论,另一个用于照片评论.架构与此类似:

CREATE TABLE EventComments
(
  CommentId int,
  EventId int,
  Comment NVarChar(250),
  DateSubmitted datetime
)

CREATE TABLE PhotoComments
(
  CommentId int,
  PhotoId int,
  Comment NVarChar(250),
  DateSubmitted datetime
)
Run Code Online (Sandbox Code Playgroud)

我的问题是我是否应该将它们组合起来,并添加一个单独的交叉引用表,但我想不出有办法正确地做到这一点.我觉得这应该没事,你有什么想法?

编辑

根据沃尔特的回答(以及一些轻读),我想出了这个:

CREATE TABLE Comments
(
  CommentId int,
  Comment NVarChar(250),
  DateSubmitted datetime
  CONTRAINT [PK_Comments] PRIMARY KEY
  (
    CommentId
  )
)

CREATE TABLE EventComments
(
  CommentId int,
  EventId int
)

CREAT TABLE PhotoComments
(
  CommentId int,
  PhotoId int
)

ALTER TABLE EventComments ADD CONSTRAINT FK_EventComments FOREIGN KEY (CommentId) REFERENCES Comments(CommentId)

ALTER TABLE PhotoComments …
Run Code Online (Sandbox Code Playgroud)

sql-server database-design data-modeling normalization

6
推荐指数
1
解决办法
509
查看次数

工具或网站,以帮助数据库规范化

是否有任何工具或在线资源(FREX教程)可以帮助新手进行数据库规范化?

sql normalization

6
推荐指数
3
解决办法
2万
查看次数

不在此数据库中使用规范化表是不是很糟糕?

我最近了解了我的信息学课程中的规范化,并且我正在开发一个使用SQLite作为后端数据库的多人游戏.

有关它的一些信息:

简化的结构看起来有点像下面这样:

 player_id |  level | exp  | money | inventory
---------------------------------------------------------
    1      |    3   | 120  | 400   | {item a; item b; item c}
Run Code Online (Sandbox Code Playgroud)

好的.如您所见,我将以字符串形式将表/数组存储在"inventory"列中.这违反了规范化.

但问题是:为玩家的库存制作额外的桌子对我来说只是一个缺点!

  • 我访问数据库的唯一点是:
    • 当玩家加入游戏并加载他的个人资料时
    • 保存球员的个人资料时

当玩家加入时,我从数据库加载他的数据并将其存储在内存中.保存播放器时,我每隔五分钟就会写一次DB.所以我的脚本中实际上只有很少的SQL查询.

如果我在加载时使用了额外的表格,我将不得不:

  • 执行性能和可能更多数据密集型查询以从库存表中获取属于玩家X的所有项目
  • 浏览结果并将其转换为表格以便存储在内存中

保存时:

  • 从库存表中删除属于玩家X的所有物品(玩家可能已经丢弃/出售了一些物品?)
  • 浏览表格并对玩家拥有的每个项目执行查询

如果我将所有玩家数据保存在一个表中:

  • 我只有一个用于保存和加载的查询
  • 一切都会在一个地方
  • 在我的脚本中,我只需要在加载和保存时(de)序列化表

我现在应该怎么做?

我的论点和情况是否有理由反对正常化?

sql database theory normalization

6
推荐指数
2
解决办法
507
查看次数

你如何教数据库规范化?

您对数据库规范化的步骤和准则是什么?如果给一群具有良好计算机和逻辑技能的人,你如何向他们解释如何规范数据库设计?获取属性列表(字段)并将该列表转换为1NF数据库的思考过程是什么?2NF?3NF?

database-design normalization

6
推荐指数
0
解决办法
5584
查看次数

我应该将可选记录属性放在单独的表中吗?

我有一张约1,000条记录的表格.其中大约一半将使用包含某些特征的一组字段.大约有10个相关领​​域.另一半记录不需要填写这些信息.

该表是数据库的核心,将占用大部分操作.虽然只有大约1,000条记录,但并不多.

存储数据库的硬件既旧又慢(旋转硬盘而不是SSD ......)所以我希望有一个相当优化的结构来充分利用它.显然,由于空白字段而单独增加数据库的大小并不是一个主要问题,但如果它减慢了查询的速度,那么这并不好.

我想我应该描述一下设置.目前Access 2007客户端和Access后端,虽然后端将很快转移到SQL服务器.目前后端位于主服务器机架上,但当移动到SQL Server时,它将获得自己的旧服务器机架.

那么我应该创建一个单独的表来存储上述特征集,还是应该保留原样?

database ms-access database-design ms-access-2007 normalization

6
推荐指数
1
解决办法
1612
查看次数

MySQL表设计和规范化帮助

注意:这个问题已于11/19/12重新定义,以供澄清.我通常在这里没有太多问题,但努力为客户端站点设计新的产品系统.我们提供一套产品,每个客户都可以向他的客户销售.我们可能会随时添加新产品,但它们都遵循以下格式:

  1. 类别
  2. 类型
  3. 产品

使用之前的结构给出一个真实世界的例子:

  • 棒球设备
    • 手套
      • 罗林斯
      • 耐克
      • Mizzuno
    • 蝙蝠
      • 伊斯顿
      • Louisville Slugger
  • 足球装备
    • 鞋
      • 耐克
      • 锐步
      • 阿迪达斯
    • 橄榄球
      • 耐克
      • Saplding
      • 威尔逊
  • ....

上面的列表显然仍在继续,可以更大,更大,但它提供了整体的想法.

目前,我正在存储特定客户可以在单个平面格式表中销售的产品类型,如下所示:

ID  | clientID | categoryID | typeID | productID | customURL
=============================================================
1   |  111     |    1       |   1    |   1       | 1111
2   |  111     |    1       |   2    |   2       | 2222
3   |  111     |    1       |   2    |   3       | 3333
4   |  111     |    2       |   3    |   4 …
Run Code Online (Sandbox Code Playgroud)

mysql database-design normalization

6
推荐指数
1
解决办法
548
查看次数

Django:检查查询集中是否存在对象(IF ELSE)

问题: 我遇到的问题是在选择模型中获得选项的价格.这是因为,根据哪些其他选项也在同一购物车中,将使用不同的价格来生成总数.我需要一个查询集的帮助,它可以获得Option的价格,如果该选项有一个effector_option,它本身在同一个购物车中,使用它,否则使用Variation只有选项字段集.

TempName App模型包括:

class Section(models.Model):
    title = models.CharField(max_length=20)
    description = models.CharField(max_length=100)
    temp = models.ForeignKey(TempName, null=False)
    def __str__(self):
        return self.title
    def get_options(self):
        return self.option_set.all()

class Option(models.Model):
    name = models.CharField(max_length=120)
    section = models.ForeignKey(Section, null=False)
    def __str__(self):
        return self.name
    def get_variations(self):
        return self.variation_set.all()

class Variation(models.Model):
    name = models.CharField(max_length=60, blank=True, unique=True)
    price = models.DecimalField(max_digits=5, decimal_places=2)
    option = models.ForeignKey(Option, null=False)
    effector_option = models.ForeignKey(Option, null=True, blank=True, related_name='option_effected')
    def __str__(self):
        return self.name
Run Code Online (Sandbox Code Playgroud)

一页上可以有很多章节.每个 …

django normalization django-models django-queryset database-normalization

6
推荐指数
1
解决办法
880
查看次数

如何设计具有父子关系的数据库?

如果我需要在数据库中表示位置(例如国家,州/省/地区,城市等),我将如何以最容易查询,扩展最多等方式这样做. .?我计划将此用于允许用户选择多个位置并将其与其个人资料相关联的应用程序.

想到的解决方案是这样的:

===========================
| Id | ParentId | Name    |
===========================
| 1  | 0        | USA     |
---------------------------
| 2  | 1        | Alabama |
---------------------------
Run Code Online (Sandbox Code Playgroud)

我想知道这种解决方案是否存在任何潜在问题.谢谢.

database-design normalization

5
推荐指数
1
解决办法
977
查看次数

PyTorch 中张量的最小-最大归一化

我想在 PyTorch 中对张量执行最小-最大归一化。

获得最小-最大归一化的公式是

在此输入图像描述

我想使用一些元素对张量执行最小-最大归一化new_min,new_max 而不迭代张量的所有元素。

>>>import torch
>>>x = torch.randn(5, 4)
>>>print(x)
tensor([[-0.8785, -1.6898,  2.2129, -0.8375],
        [ 1.2927, -1.3187, -0.7087, -2.1143],
        [-0.6162,  0.6836, -1.3342, -0.7889],
        [-0.2934, -1.2526, -0.3265,  1.1933],
        [ 1.2494, -1.2130,  1.5959,  1.4232]])
Run Code Online (Sandbox Code Playgroud)

有没有办法对两个值之间的给定张量进行最小-最大归一化new_min, new_max?

假设我想将张量从 缩放new_min = -0.25到new_max = 0.25

python normalization pytorch

5
推荐指数
1
解决办法
2万
查看次数

如何制作不分隔变音符号的 charArray?

我试图将希伯来语单词分成 C# 中的字母,但 ToCharArray() 将变音符号分开,就好像它们是单独的字母一样(但事实并非如此)。我可以选择将字母与变音符号保持完整,或者在最坏的情况下完全删除变音符号。

\n

示例: \xd7\x9b\xd6\xbc\xd6\xb6\xd7\x9c\xd6\xb6\xd7\x91 显示为 6 个不同的字母。

\n

c# normalization diacritics hebrew unity-game-engine

5
推荐指数
2
解决办法
98
查看次数