1
5
谷歌搜索数据类型的差异。 但模式只是画面的一部分。 SQL方言也不同。谷歌搜索这些差异。然后,要么坚持两者通用的SQL子集,要么构建一个方案,在每个方案中使用不同的SQL。 不要等到最后才在“其他”数据库上进行测试。从一开始就对两者进行测试,这样您就不会在死胡同的设计方向上投入太多。
|
2
4
我的跨数据库开发的四个主要指导原则如下:
1和2实际上是同一个问题-所有数据库都允许转义对象名称(因此可以使用带有空格的名称以及顺序和日期之类的名称),但它们的做法通常不同,因此SQL Server的此查询:
一定是
|
3
1
|
4
1
|
5
1
Mysql提供了一个导出功能,允许您将模式导出为与SQL Server兼容的格式。 如前所述,使用尽可能简单的类型,不要依赖标准SQL。 |
6
0
我不会推荐以上任何一种,除非你 喜欢 玩高度抽象的代码。它倾向于充当一个长杠杆,你用力推短端,移动它一点点,巨大的事情就会发生。 |
7
0
如果您下载并使用VisioModeler捕获概念和/或逻辑设计,它非常擅长为几个RDBMS的等效物理设计提供DDL。 或者有许多其他ERD类型的工具可以完成大致相同的任务。你可以试试DBDesigner。 |
8
0
在使用设计为使用多个后端的数据库时,我遇到了几个问题。 首先,数据类型不同,处理数据的方式也不同。在处理日期和大量文本时,这往往特别棘手。 我注意到的下一件事是,由于他们试图使用ANSII标准SQL,当数据库不完全支持该标准时,就会出现问题。更大的问题是,标准通常不是从特定数据库获取数据的最有效方法。我使用过的每一个提供多个后端的商业数据库在表中获得大量记录时都非常慢。ANSII标准也并没有提供解决更复杂问题的好方法,所以您最终会遇到复杂的解决方法。 另一种方法是使用存储过程,为您支持的每个数据库后端编写一个存储过程,但在数据库中使用相同的名称。通过这种方式,您可以利用每个数据库和不同数据库结构的性能调优,而无需更改用户界面,但维护起来要困难得多,因为每个数据库都必须编写每个更改。然而,对于您的用户来说,它可能比您的竞争对手快得多,因此您可以更改产品的溢价。但是,由于额外的维护成本和为每种类型的数据库进行性能调整所需的额外数据库专家,您需要收取额外的费用(mysql专家可能不知道如何最好地调整SQL Server数据库,反之亦然) 另一个需要考虑的是,您托管数据,用户从Web访问数据。然后,您只需要设计和支持您选择的一个数据库。您需要一大堆服务器、网络和dba人员来完成这项工作,因为您需要为每个客户机保持24小时的正常运行时间,而且他们可能要求您将其数据存储在不包含任何竞争对手数据的服务器上。由于不了解您开发软件的业务,很难说这是否是一个可行的替代方案。 最便宜的方法是需要一个特定的后端。但是,您可能会失去不想购买不同后端的潜在客户。如果你这样做的话,我会调查潜在客户以找到他们现在使用的数据库,可能其中一个是事实上的行业标准,如果你要求它作为后端,你将失去很少的潜在客户。此外,如果你能使产品的卖点明显快于竞争对手,因为你有一个标准的后端,你可能会说服他们无论如何。但如果你走这条路,你最好设计一个速度极快的数据库。 |
9
0
设计一个特定于SQL但与SQL方言无关的逻辑数据库。设计应包括表、列、域和约束。约束包括但不限于主键约束和外键约束。 域规范将很难用不支持一种SQL方言而不支持另一种SQL方言的术语来定义。
在应用程序中,尽可能使用最小公分母SQL,而不会对性能或代码灵活性造成太大的损失。必要时,使用后端特定的方法编写代码。将这些后端依赖项隐藏在几个对象中。使大多数应用程序DBMS不可知。 |
10
0
Datanamic的Dezing for Databases支持独立于数据库的建模。 |
Duvan · 将逗号(,)替换为点(.)[副本] 2 年前 |
Mateen Bagheri · 选择表的计数并选择其自身 2 年前 |
SoT · SQL Server中求和函数的工作方式 2 年前 |
NKAT · 将列值聚合到列表中会产生错误 2 年前 |
deanpillow · 返回两列中有一个匹配值的记录 2 年前 |
snowflakes74 · 在Dapper中异步查询多个结果 2 年前 |