- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在将数据从基于 IBM Universe 的旧系统迁移到新的企业级数据信息管理系统,并在此过程中学习数据库设计。
我查看了新系统的后端数据库结构(它是一个MS SQL DB,大约有100个表),发现有些地方很奇怪。但我不知道我的经验不足是否是我这么认为的原因,这只是标准做法,或者这些奇怪之处是否真的只是糟糕的数据库/应用程序设计。
例如:
还有很多其他的。数据库看起来超过一半是 varchar 字段。
我还应该提到,数据库中的所有 varchar 字段实际上都是 n-varchar - 所以它都是 unicode,即使是只存储数字的字段也是如此。
在某些情况下,使用如此多的 varchar 字段可能是最佳选择,是否有合理的论据?(灵 active ……也许……?)
最佳答案
这看起来确实很奇怪,但这实际上取决于数据的使用方式。使用 varchar 可能有很好的理由。如果不需要使用条件中的字段或执行计算,使用 varchar 会给用户更多的自由来做他们想做的事。
例如,在房地产领域,房屋的价格似乎应该是数字。但是,许多代理商希望显示诸如“要求定价”、“低 300 美元”等短语(尽管我们保留了一个单独的数字价格字段用于搜索)。
我建议查看这些字段是如何使用的,以确定它们是否应该是 varchar。如果您看到从 varchar 到它应该是的类型的大量转换,那么 varchar 可能不是正确的选择。
关于sql-server - 使用这么多 varchar 字段是否有正当理由? (微软 SQL 数据库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3883977/
您好,我希望我的下一个输出(在本例中就是字母)在上一个输出之后输出 8 个空格。这适用于第一个字符,但之后的 printf 语句不起作用。它在第一个 printf 语句之后立即打印,我试图将其设置为
我想知道制作 std::list<>::splice 背后的基本原理是什么使引用被拼接到新容器中的子序列的迭代器无效。这对我来说有点不合逻辑,尤其是考虑到标准 std::container::swap
谁能告诉我为什么我应该使用 Azure Function 输出绑定(bind)(例如 SendGrid 或 Twilio)而不是仅仅在我的 C# 函数中显式使用适当的 SDK(例如 Sendgrid
我们在当前项目中使用 React 和 TypeScript,我遇到了以下行为。 import React, { Component } from 'react'; 我将上面的行替换为下面的行,因为它似
我是一名优秀的程序员,十分优秀!