小编Mad*_*iya的帖子

如何在数据库中表示继承?

我正在考虑如何在SQL Server数据库中表示复杂的结构.

考虑一个需要存储一系列对象细节的应用程序,这些对象共享一些属性,但有许多其他属性不常见.例如,商业保险计划可能包括同一保单内的责任,汽车,财产和赔偿保险.

在C#等中实现它是微不足道的,因为您可以创建一个带有Sections集合的Policy,其中Section是根据各种类型的封面所需继承的.但是,关系数据库似乎不容易这样做.

我可以看到有两个主要选择:

  1. 为所有可能的变体创建一个Policy表,然后是一个Sections表,其中包含所需的所有字段,其中大部分都是null.

  2. 创建一个Policy表和许多Section表,每个表对应一种封面.

这两种替代方案似乎都不令人满意,特别是因为必须在所有Sections中编写查询,这将涉及大量连接或大量空检查.

这种情况的最佳做法是什么?

sql database inheritance database-design class-table-inheritance

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

你如何有效地模拟数据库中的继承?

在数据库中建模继承的最佳实践是什么?

权衡取舍(例如可疑性)是什么?

(我对SQL Server和.NET最感兴趣,但我也想了解其他平台如何解决这个问题.)

.net sql-server oop inheritance database-design

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

错误1452:无法添加或更新子行:外键约束失败

我在MySQL Workbench中创建了表,如下所示:

ORDRE表:

CREATE TABLE Ordre (
  OrdreID   INT NOT NULL,
  OrdreDato DATE DEFAULT NULL,
  KundeID   INT  DEFAULT NULL,
  CONSTRAINT Ordre_pk PRIMARY KEY (OrdreID),
  CONSTRAINT Ordre_fk FOREIGN KEY (KundeID) REFERENCES Kunde (KundeID)
)
  ENGINE = InnoDB;
Run Code Online (Sandbox Code Playgroud)

PRODUKT表:

CREATE TABLE Produkt (
  ProduktID          INT NOT NULL,
  ProduktBeskrivelse VARCHAR(100) DEFAULT NULL,
  ProduktFarge       VARCHAR(20)  DEFAULT NULL,
  Enhetpris          INT          DEFAULT NULL,
  CONSTRAINT Produkt_pk PRIMARY KEY (ProduktID)
)
  ENGINE = InnoDB;
Run Code Online (Sandbox Code Playgroud)

ORDRELINJE表:

CREATE TABLE Ordrelinje (
  Ordre         INT NOT NULL,
  Produkt       INT NOT NULL, …
Run Code Online (Sandbox Code Playgroud)

mysql sql mariadb mysql-error-1452

95
推荐指数
9
解决办法
41万
查看次数

为什么不vector :: clear从向量中删除元素?

当我clear()在a上使用std::vector它时,它应该销毁它中的所有元素vector,而不是它.

示例代码:

vector<double> temp1(4);
cout << temp1.size() << std::endl;
temp1.clear();
cout << temp1.size() << std::endl;

temp1[2] = 343.5; // I should get segmentation fault here ....

cout << "Printing..... " << temp1[2] << endl;
cout << temp1.size() << std::endl;
Run Code Online (Sandbox Code Playgroud)

现在,我应该在尝试访问已清除的向量时遇到分段错误,但是它会填充那里的值(据我说这是非常错误的)

结果如下:

4
0
Printing..... 343.5
0
Run Code Online (Sandbox Code Playgroud)

这是正常的吗?这是一个非常难以发现的错误,它基本上杀了我的代码数月.

c++ stdvector undefined-behavior

31
推荐指数
5
解决办法
4310
查看次数

在 MySQL SERVER 8.0 中,密码功能不起作用

PASSWORD在 MySQL Server version 8.0.12 中执行函数时出错

我有以下查询:

SELECT * 
FROM users 
WHERE login = 'FABIO' 
  AND pwd = PASSWORD('2018') 
LIMIT 0, 50000
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

错误代码:1064。您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在附近使用的正确语法

mysql mysql-8.0

19
推荐指数
3
解决办法
2万
查看次数

表和视图在 MYSQL 中继续获取

我对 MYSQL 相当陌生。我今天刚刚在我的 Windows 10 计算机上安装了 MYSQL,以供个人学习。我安装了 mySQL Workbench 8.0 并在数据库中创建了一些表。但我面临的问题是表、视图、存储过程和函数一直在获取。我在网上看到一些解决方案来运行 linux 命令来解决问题。但我的是在 Windows 上,不确定在哪里以及如何执行命令。有人可以帮我解决我在使用 MYSQL 时遇到的问题吗?

我的 SQL 获取继续进行

mysql

7
推荐指数
3
解决办法
7060
查看次数

在MySQL中转换日期

我在MySQL数据库中有一个列,其中包含以下格式的日期:

Tue Oct 25 2016.我试图在表格中得到它10/25/2016.

我做了一些研究并尝试了这个:

SELECT DATE_FORMAT(Date, '%d/%m/%Y') FROM table;
Run Code Online (Sandbox Code Playgroud)

但它返回null

任何帮助将不胜感激.

mysql date

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

硒化物。download() 返回 FileNotFoundException:无法下载文件

我想检查使用 Selenide download() 方法下载文件,但捕获 FileNotFoundException 和错误“拦截 1 个响应”,尽管文件已下载。

我有按钮,点击它会下载一个 zip 文件。元素没有 href 属性。

我使用 Selenide 5.0.0,chromdriver.exe 2.43

我有以下设置

    Configuration.proxyEnabled = true;
    Configuration.fileDownload = FileDownloadMode.PROXY;
Run Code Online (Sandbox Code Playgroud)

以下代码调用错误

public static SelenideElement actionButton() {return $(By.xpath("//div[@class='task-list_container_scroll-view']/div[1]/div[@class='ng-star-inserted'][1]//common-task-view//span[@role='button']"));}
File file = actionButton().download(10000);
Run Code Online (Sandbox Code Playgroud)

java.io.FileNotFoundException: 无法下载文件 {By.xpath: //div[@class='task-list_container_scroll-view']/div[1]/div[@class='ng-star-inserted'][ 1]//common-task-view//span[@role='button']} 在 10000 毫秒内。拦截了 1 个响应。200"" {Server=nginx/1.13.12, Cache-Control=private, Access-Control-Allow-Origin=*, Access-Control-Allow-Methods=POST, GET, OPTIONS, DELETE, PUT, Connection=keep-活着,到期=星期四,1970 年 1 月 1 日 00:00:00 GMT,Access-Control-Max-Age=3600,X-Application-Context="frontend":staging:80,Content-Length=1271853,Date=Wed, 2018 年 10 月 31 日 12:41:32 GMT,Access-Control-Allow-Headers=Content-Type,x-requested-with,X-Custom-Header,accept,authorization} application/octet-stream(1202830 字节)在 com。 codeborne.selenide.impl.DownloadFileWithProxyServer。

download selenide

5
推荐指数
0
解决办法
770
查看次数

如何在 Sql 触发器中获取当前删除的行的值并使用已删除的行数据更新另一个表

每当用户从表中删除数据时,我都会触发 SQL 触发器。我想在删除当前数据之前更新另一个表。我无法获取当前已删除的行数据。如何在SQL触发器中获取当前删除的数据的内容。

CREATE TRIGGER `before_insert_money` BEFORE DELETE ON `payment`
  FOR EACH ROW BEGIN
    DECLARE TEMP INT;
    SELECT   OLD.user_id  into TEMP      
    FROM OLD;

    UPDATE user set monthly_limit=TEMP where id=1;

 END
Run Code Online (Sandbox Code Playgroud)

mysql sql

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

MySQL 5.6 - DENSE_RANK 类似功能,没有 Order By

我有一张这样的表:

+------+-----------+
|caseID|groupVarian|
+------+-----------+
|1     |A,B,C,D,E  |
+------+-----------+
|2     |A,B,N,O,P  |
+------+-----------+
|3     |A,B,N,O,P  |
+------+-----------+
|4     |A,B,C,D,F  |
+------+-----------+
|5     |A,B,C,D,E  |
+------+-----------+
Run Code Online (Sandbox Code Playgroud)

我想获得一个新列nameVarian,以便相同的groupVarian值具有相同的排名nameVarian(例如:v1、v2 等)。但是,nameVarian分配给特定对象的值groupVarian应按照 的顺序caseID(按照它们出现在表中的顺序)。

输出应该是这样的:

+------+-----------+----------+
|caseID|groupVarian|namevarian
+------+-----------+----------+
|1     |A,B,C,D,E  |v1        |
+------+-----------+----------+
|2     |A,B,N,O,P  |v2        |
+------+-----------+----------+
|3     |A,B,N,O,P  |v2        |
+------+-----------+----------+
|4     |A,B,C,D,F  |v3        |
+------+-----------+----------+
|5     |A,B,C,D,E  |v1        |
+------+-----------+----------+
Run Code Online (Sandbox Code Playgroud)

mysql sql mysql-5.6

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