标签: database-agnostic

软件即服务 - 数据库

如果我要构建一个CRM Web应用程序作为会员服务销售,那么设计和部署数据库的最佳方法是什么?

我是否有一个数据库,每个表包含100个记录,或者为不同的客户端部署多个数据库?

使用单个数据库真的是一个问题,因为我相信像Flickr这样的网站会使用它们吗?

sql-server saas database-agnostic

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

困难的时态跨表数据库约束

我有一个特别困难的业务约束,我想在数据库级别强制执行.这些数据本质上属于财务数据,因此必须保护其不存在与第n度的不一致 - 不要信任业务层.我稍微松散地使用"时间"这个词,这意味着我打算控制一个实体如何能够随着时间而改变.

对细节进行着色,这是设计:

  • 发票可以收取几笔费用.
  • 在创建发票后不久,费用将分配给发票.
  • 发票到达流程中的一个阶段,然后"锁定".
  • 从现在开始,不会向此发票添加或删除任何费用.

这是一个精简的数据定义:

CREATE TABLE Invoices
(
    InvoiceID INT IDENTITY(1,1) PRIMARY KEY,
)

CREATE TABLE Fees
(
    FeeID INT IDENTITY(1,1) PRIMARY KEY,
    InvoiceID INT REFERENCES Invoices(InvoiceID),
    Amount MONEY
)
Run Code Online (Sandbox Code Playgroud)

您会注意到发票的"可锁定"性质未在此处表示; 如何表达它 - 以及它是否需要直接表示 - 仍然是一个悬而未决的问题.

我开始相信这是那些无法转换为域密钥正常形式的安排之一,尽管我可能错了.(毕竟,真的没有办法说出来.)尽管如此,我仍然对高度规范化的解决方案抱有希望.

我碰巧在SQL Server 2008上实现了这个(语法可能是一个暗示),但我是一个好奇的人,所以如果有其他DBMS的解​​决方案,我也很想听到这些.

sql-server constraints crosstab database-agnostic temporal

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

这种行为是否存在于所有主要数据库中?

mysql> select 0.121='0.121';
+---------------+
| 0.121='0.121' |
+---------------+
|             1 |
+---------------+
Run Code Online (Sandbox Code Playgroud)

是否持有其他数据库number='number'true

sql comparison database-agnostic

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

SQL中日志记录表的适当查询和索引

假设一个名为'log'的表,其中有大量记录.

应用程序通常通过简单的SQL检索数据:

SELECT * 
FROM log 
WHERE logLevel=2 AND (creationData BETWEEN ? AND ?)
Run Code Online (Sandbox Code Playgroud)

logLevel并且creationData有索引,但记录数量使得检索数据需要更长的时间.

我们如何解决这个问题?

mysql sql sql-server oracle database-agnostic

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

光滑的通用且与驱动程序无关

基本上,我要实现的是以下各项的组合:

Slick 3.0.0数据库不可知论Slick 3可重用的通用存储库

实际上,我做了很多尝试,但是根本无法使用。

abstract class BaseModel[T <: slick.lifted.AbstractTable[_]](query: TableQuery[T], val driver: JdbcProfile, val dbTableName: String)
{
  lazy val all: TableQuery[T] = TableQuery[T]
  import driver.api._

  def createTable = all.schema.create
  def dropTable = all.schema.create

  abstract class BaseTable[B](val tag: Tag) extends Table[B](tag, dbTableName)
  {
    def id = column[Long]("id", O.PrimaryKey, O.AutoInc)
  }
}
Run Code Online (Sandbox Code Playgroud)

现在,这里已经有一个问题:

def createTable = all.schema.createdropTable...-> 相同,schema在这里无法解决,尽管我之前已导入驱动程序。

但是,当我将其子类化时,会出现一个更大的问题:

这是代码

class NodeModel(driver: JdbcProfile, dbTableName: String) extends BaseModel[NodeTable](TableQuery[NodeTable], driver, dbTableName) {

  val dbDriver = driver …
Run Code Online (Sandbox Code Playgroud)

generics scala database-agnostic slick

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