我需要在包含数百万行的表中将一列从 NOT NULL 更改为 NULL。我试过一个简单的
alter table Table1 ALTER COLUMN Column1 XML NULL
Run Code Online (Sandbox Code Playgroud)
但它需要永远。所以这里是我的问题:
我正在为我们的销售团队设计一个数据库,用作快速工作报价工具。我想要一些关于设计特定方面的反馈。
报价基本上是通过选择一个预定义的“组件”列表来建立的,每个“组件”都具有商定的价格。主窗体的简化视图如下所示:
+------------ --- ---+
| Assembly options |
+------------+------------+----------+------------+---+---+---+ --- +--+
| assembly ? | unit cost | quantity | total cost | 1 | 2 | 3 | |50|
+------------+------------+----------+------------+---+---+---+ --- +--+
| VSD55 | £10'000 | 2 | £25'500 | 1 | 1 | | | |
| RDOL2.2 | £2'000 | 1 | £1'500 | | 1 | | | |
| DOL5.0 | £1'000 | 1 | £1'200 | | | 1 | | | …Run Code Online (Sandbox Code Playgroud) 我正在为公元 1000 年之前扩展的记录创建一个数据库,但 MySQL 日期和日期时间字段仅支持从 1000 开始的日期。
有没有比使用 bigint 类型使用 Unix 时间戳计算 1/1/1970 之前/之后的秒数或切换到支持更大日期范围的数据库软件更方便的方法?
我正在处理一个包含用于迁移的映射数据库元素的项目,我想知道其他人使用哪些工具来执行此操作?
Excel 是一种非常灵活的记录简单映射的方式,但我想知道是否有人有他们遵循的特定方法或他们可以推荐的其他工具?
早些时候,对我来说,关于是否(总是)使用/避免聚集索引的辩论/讨论没有定论。
好吧,我知道它们有时会在适当的+特定目的和上下文中使用。
“SQL Azure 不支持没有聚簇索引的表。一个表必须有一个聚簇索引。如果一个表是在没有聚簇约束的情况下创建的,那么在允许对该表进行插入操作之前必须先创建一个聚簇索引”
不符合先前的结论、理由和解释。
我在前面的解释中遗漏了严格要求无任何例外地普遍存在的聚集索引的基本原理是什么?
这更像是一个需要反馈的问题。我正在设计一个处理多个支付网关的数据库。支付网关在支付前通常需要一张订单明细表(这对所有 PG 都是通用的),以及一个交易明细表,用于存储支付后的响应。
现在为了处理多个支付网关,我可以保留一个交易表,用所有支付网关提供的所有字段和一个说明该行来自哪个 PG 的字段填充它;
或者,我可以为每个带有前缀 likepaypal_或bank_etc的 PG 创建单独的事务表,每个表都有每个人需要的字段。
我只是不确定哪种方法更合适。还需要为我将来可能遇到的类似场景学习它。
我正在开发一项服务,该服务依赖于用户能够接收他们自己选择的消息。这些消息在发送进行处理之前需要存储在某处。
现在我将它们存储在 postgres 数据库中,但我觉得它不能很好地扩展。
目前的布局是:
ID - MESSAGE - DATE - TIME
Run Code Online (Sandbox Code Playgroud)
DATE 和 TIME 字段保存应该发送消息进行处理的时间和日期。这不能很好地扩展,好像需要在每个月的第一个星期一发送一条消息,它会占用 12 倍的空间。
问题是我似乎无法找到另一种方式来表示何时应该发送消息进行处理?理想情况下,我希望能够在一行中表示每个日期。
我们也在讨论使用 Redis,但很快就决定不使用,因为我们需要 webfrontend 的数据库。
任何人都知道如何优化消息存储?如何表示何时应该发送消息进行处理?
我也愿意就如何解决这个问题提出任何其他建议。
我有足够的 PowerShell 技能来开始工作,但没有使用 SQL 服务器。有人可以指出我如何使用 PowerShell 获取有关远程 SQL 服务器的信息以识别其上运行的数据库的正确方向。
谢谢你的帮助。
编辑 - 使用 SMO 代码
我试图将这段代码放在一起,但得到错误:找不到类型 [Microsoft.SqlServer.Management.Smo.Server] 确保加载了包含此类型的程序集
[Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo")
$sqlServer = New-Object("Microsoft.SqlServer.Management.Smo.Server") "MSQLULTDBS04"
foreach($sqlDatabase in $sqlServer.databases) {$sqlDatabase.name}
Run Code Online (Sandbox Code Playgroud) 下面的例子说明了我面临的问题:
动物有一个种族,可以是猫或狗。猫可以是Siamese或Persian。狗可以是德国牧羊犬或拉布拉多猎犬。
Animal 是一个强大的实体,而其种族是一个属性,可以具有两个提供的值之一( cat 或 dog )。 这两个值都很复杂(我在这里只添加了狗/猫的类型来说明问题,但也可以有猫/狗的名字和一堆其他东西)。
我不知道如何为此示例创建关系表。
我曾尝试使用陈的符号绘制 ER 图,这代表了问题,但作为初学者,我不知道我是否做得对。这是我得到的:

如果我画错了,我深表歉意,如果是这样,请纠正我。我不希望简单地获得“免费解决方案”,而且还希望学习如何处理这个问题,以便我将来可以自己解决。
我唯一想到的是创建两张单独的桌子,一张给猫,一张给狗。此外,Animal表中的race属性将只存储cat或dog值。像这样的东西:
Animal< # Animal_ID, race, other attributes >
Cat < # Cat_ID, $ Animal_ID, breed >
Dog < # Dog_ID, $ Animal_ID, breed >
Run Code Online (Sandbox Code Playgroud)
我真的对我的解决方案有一种不好的感觉,我担心它是错误的,因此下面的问题。
如果需要更多信息,请发表评论,我会尽快更新我的帖子。也可以随意添加适当的标签,因为我在这里很新。
谢谢你。
database-design ×10
sql-server ×2
date-format ×1
index ×1
migration ×1
mysql ×1
postgresql ×1
powershell ×1
subtypes ×1
time ×1
timestamp ×1