小编Mic*_*een的帖子

数据库设计汽车模型/汽车分类

我正在为汽车分类开发一个数据库。我不确定如何设计它的最佳方式。汽车有几个特点,比如它有 2 个或 4 个门,如果它是 4x4 或 4x2,发动机容量为 1.6 或 2.0。

所有这些功能都是汽车特有的,但它们必须仅限于该型号所具有的功能。因此,例如,如果有人发布自行车,则不会在 4x4 或该型号以外的引擎的下拉列表中显示该选项。

我不想让这个通用。它只会用于汽车,因此没有必要考虑如何最好地用于通用分类广告。

设计这个的最佳方法是什么?

更多信息:

我的问题是如何设计汽车模型和实际汽车之间的关系。例如,模特年可以从 1990 年到 2000 年。当有人要添加该型号的汽车时,我只希望他们能够从该型号的选项中进行选择。如何将其存储在数据库中?

database-design

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

如何从每个类别中选择前 10 条记录

我有一个带字段的表

Hour,
PathId,
Duration,
Event,
CellId,
Channel
Run Code Online (Sandbox Code Playgroud)

我有 50 多个 CellId。每个 CellId 有四个 PathId(即 0、1、2、3)。每个 PathId 都有许多事件和持续时间。现在我想显示每个 CellId 的前 10 条记录(每个 PathId)。

样品表

样品表

样本输出

样本输出

sql-server greatest-n-per-group

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

多语言内容的高效数据库模式?

假设我有一个用于博客文章posts、 和架构的表

id
author
title
content
Run Code Online (Sandbox Code Playgroud)

每个都post可以属于一些categories

id
name
descrtiption
Run Code Online (Sandbox Code Playgroud)

所以一篇博文可以属于多个类别。

显然titleand contentin posts、 andnamedescriptionincategories可以翻译成不同的语言。

那么,考虑到现有的 db 模式设计,扩展对多语言应用程序的支持的最有效和最合理的方法是什么?

schema database-design application-design

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

测验数据库设计

我目前正在研究一个测验系统,并试图首先进行数据库设计。我已经阅读了一些关于不同测验的主题,但它们在某些部分都是独一无二的。

系统将使用带有 PHP 的 MySQL 数据库。

这个测验系统的目标:

  • 能够在里面有不同的“测验”
  • 完整测验和每个问题的时间轨迹(提前考虑人与人之间的挑战部分)
  • 能够在测验中处理很多参与者
  • 拥有良好的基础,因此可以使用新的、更复杂的功能进一步开发,而无需重建整个系统(即数据库设计)。

到目前为止的数据库设计图像。我已经在每个“关系”上写了这个字段。

我很确定其中的大部分内容都是不言自明的,但我已经对不太明显的内容添加了注释。

至少在一开始它不会是任何“现场”比赛。更有可能的是,您进行测验,获得时间,然后您可以将链接发送给朋友并参加比赛。但我还在考虑那部分。

我意识到,与将所有内容放在一两个表格中的基本测验设计相比,使用此设计获得完整结果等需要更多的工作。但是我尝试将它分成不同的表,以便能够更好地扩展它并使其更复杂以备后用。

我正在考虑添加某种支持,以便一个问题也可以用于不同的测验。只是在想我应该如何做到最好。

这其中的一个关键功能还在于能够快速加载所有内容。

欢迎任何提示!

数据库设计

wp_quiz(这里我们存储所有不同的测验)

  • 测验编号
  • 测验名称
  • 测验文本
  • quiz_site(内部事物,对测验本身并不重要)
  • quiz_difficulty

wp_quiz_questions

  • quiz_question_id
  • 测验编号
  • quiz_question
  • quiz_question_difficulty
  • quiz_question_multianswer(如果这是一个有多个正确答案的特殊问题,那么我们使用例如选择而不是单选按钮)。

wp_quiz_question_answers

  • quiz_question_answer_id
  • quiz_question_id
  • quiz_question_answer
  • quiz_question_answer_correct

wp_quiz_participants

  • quiz_participant_id
  • 测验编号
  • quiz_participant_name
  • quiz_participant_email
  • quiz_participant_userid
  • quiz_participant_time_start
  • quiz_participant_time_end

wp_quiz_participant_answers

  • quiz_participant_answers_id
  • 测验编号
  • quiz_question_id
  • quiz_participants_id
  • quiz_question_answer_id
  • quiz_question_time_start
  • quiz_question_time_end

mysql database-design

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

在回滚期间,锁升级是否反转

通常,SQL Server 会在更新期间获取锁。它还支持锁升级

锁升级是将许多细粒度锁转换为较少粗粒度锁的过程,减少系统开销的同时增加并发争用的概率。

在事务 ROLLBACK 期间,SQL Server 是否会降级锁,放回细粒度锁?

sql-server sql-server-2008-r2 rollback locking

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

array_length 如果数组为空行为

请向我解释这种行为。

此 SQL 查找 ids (type is array::bigint) 为空的元素。

SELECT * FROM rises WHERE ids = '{}'
-- finds, e.g., 9 rows
Run Code Online (Sandbox Code Playgroud)

此 SQL 未找到任何行:

SELECT * FROM rises WHERE array_length(ids, 1) = 0
--finds always 0 rows
Run Code Online (Sandbox Code Playgroud)

但是这个 SQL 可以找到非空数组

SELECT * FROM rises WHERE array_length(ids, 1) > 0
--finds, e.g., 15 rows
Run Code Online (Sandbox Code Playgroud)

初始化:

CREATE TABLE rises(
    id bigserial, 
    d1 bigint DEFAULT 0, 
    ids bigint[] DEFAULT '{}', 
    PRIMARY KEY (id));
Run Code Online (Sandbox Code Playgroud)

为什么array_length可以找到非空数组,但对空数组不起作用?

postgresql array

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

在不同域中使用Windows身份验证连接到sql server

我发现在使用 Windows 身份验证连接到远程 SQL Server 或其他域时我们有两个选择:

  1. runas /netonly 方法
  2. 添加 Windows 凭据

但是Windows身份验证不就意味着登录Windows的用户拥有使用SQL Server的身份验证吗?

因此,由于我不是远程服务器中的授权登录名或用户,我的意思是我不是他们计算机上的 Windows 用户,我如何连接到他们的服务器?

这样每个知道我的域名和实例名的人都可以连接到我的机器。

安全性怎么样?我们是否必须添加其他 Windows 用户或计算机才能连接到我们的 SQL Server?

我相信我们必须将其他计算机添加到我们的域中,或者我们必须将其他域添加到我们的域中受信任。

请帮忙; 我错过了什么?

authentication sql-server

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

每次调用 API 时如果不存在则创建表:不好的做法?

我正在用 PHP 编写一个简单的 API,并使用 MySQL 作为 Web 应用程序的数据库。我打算CREATE TABLE IF NOT EXIST在每个 API 调用中放入所有表。

我预计会有 5-6 张桌子。

我尝试这样做的原因很简单:我不需要运行任何额外的脚本来初始化应用程序 - 它会在第一次运行时自动执行。

作为一个缺点,我预计这会减慢 API 操作的速度。然而,我尝试记录 API 调用,但仍然是 2-3 毫秒(在我的例子中,如果有 CREATE TABLE 或没有 CREATE TABLE,我没有注意到任何差异)。

有什么想法吗?

mysql innodb performance php

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

需要关于备份策略的建议

我们的客户已同意一天数据丢失的 RPO。所以我将改变备份策略以消除空间限制。

数据库处于完全恢复模式。

现有的备份计划:-

  1. 我们每天对数据库进行一次完整备份。

想改变如下: -

  1. 每周,在周日或周六,我们都会对数据库进行完整备份。
  2. 并计划每天对​​数据库进行一次事务备份或差异备份。

这将避免我的空间限制。

如果我们备份事务日志,那么 RTO 会不会更大,因为我们每天只备份一个事务?

无论如何,我们需要执行事务日志备份以在日志文件中腾出空间。

那么你能建议哪种备份类型会更好,差异或事务日志?

如果我走错了方向,请根据我的 RPO 建议一个备份策略。

谢谢。

sql-server backup t-sql restore sql-server-2012

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

从 JSON 中查找祖先

我有一个看起来像这样的层次结构:

在此处输入图片说明

作为 TSQL 中的 JSON,它是这样的:

declare @Employees nvarchar(max) =
'{
  "person": "Amy",
  "staff": [
    { "person": "Bill" },
    {
      "person": "Chris",
      "staff": [
        { "person": "Dan" },
        { "person": "Emma" }
      ]
    }
  ]
}';
Run Code Online (Sandbox Code Playgroud)

这只是一个例子。实际数据可以是任何深度或广度不确定的树。

发现文档和所有示例都显示了自上而下的遍历。每个 JSON 路径都从根节点开始,并通过已知的节点名称导航到所需的节点。我没有发现从层次结构中的不确定深度开始并向上工作。我觉得我需要像传递闭包这样的东西。

给定一个名字,我想获得该名字的血统。例如,给定“Emma”,结果将是“Emma / Chris / Amy”。给定“比尔”,答案将是“比尔/艾米”。输出格式不重要;它可以是 JSON、字符串或结果集。名字是独一无二的。

这是对我自己的学习练习。只要它仍然是 JSONy,就可以将原始 JSON 表示更改为任何等效的内容。层次结构的邻接列表表示上的 JSON_QUERY 无法实现我的目标。

sql-server t-sql json

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