小编Use*_*841的帖子

保存“借方”和“贷方”信息的常用方法是什么?

我正在研究一个会计系统,对于每笔交易,如果这是借方或贷方,我需要保存。我可以想到两种方法(MySQL数据库):

方法一

  • 金额(十进制)
  • 类型(枚举,借方/贷方)

方法二

  • 借记(十进制)
  • 信用

在第一个设置中,我保存了交易类型,但在第二种方式中,我宁愿将金额保存在借方或贷方列中。这种方法的优点是与方法 1 相比,我可以更轻松地将借方和贷方总额相加。但我想知道是否有一种通用的方法可以做到这一点?

mysql database-design

10
推荐指数
3
解决办法
7494
查看次数

如何在一张表中有两个自动增量列?

我有一个 MySQL 表,其中包含有关公司发票的信息。但是,这家公司有两个分公司,每个分公司都有独特的开票顺序;可以说是“意甲”和“意甲”。但是,这是一家公司,我不想创建两个发票表。相反,我想为一张表设置两个不同的自动增量。我知道这在技术上是不可能的,但我想这是其他人以前解决过的一个问题,所以我想知道这个问题是否有一个众所周知的“解决方案”?

我现在正在做的不是使用主键作为发票编号(这将是理想的),而是使用带有发票 ID 的辅助列,该列是手动递增的(嗯,使用 PHP 脚本,但它仍然不是自动的),通过检查该特定系列的最新发票。

这是我目前的设置:

CREATE TABLE `invoices` (
  `id` mediumint unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `invoicenumber` mediumint unsigned NOT NULL,
  `branch` enum('A','B') NOT NULL,
  `date` date NOT NULL,
  `client` varchar(100) NOT NULL
) COMMENT='' ENGINE='InnoDB';
Run Code Online (Sandbox Code Playgroud)

要检查延迟发票,我运行:

SELECT MAX(invoicenumber+1) AS new_invoice_number FROM invoices WHERE branch = 'A'

mysql database-design

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

货币“类型”列的数据类型,例如美元、猫等。

我正在为会计软件设置 MySQL 数据库。其中一个字段是保存每笔交易使用的货币。您会推荐哪种字段类型?细节:

  • 不会使用超过 10 种不同的货币
  • 所有货币都有三个字母的 ISO 名称
  • 货币列有时会用在 CASE 语句中,有时会用在 WHERE 语句中
  • 桌子会很大,所以我想做出最佳选择。存储大小不是问题。速度和在较小程度上的易用性是。

我正在考虑:

  1. 使用char (3)领域和保存货币usdcad等等。
  2. 使用enum字段并将 10 种货币定义为选项
  3. 使用一个tinyint字段并将其与另一个包含每种货币的 iso 代码的数据库相关联。
  4. 使用 tinyint字段而不是关联数据库(并且必须执行 JOIN),我只是将非常静态且不变的货币列表保存在 PHP 数组中。为我节省了一些 JOINing,但仍然允许我使用tinyint.

有人对什么是最好的有任何建议吗?

mysql database-design

6
推荐指数
2
解决办法
3328
查看次数

当 ID 不同时获取唯一名称(DISTINCT ?)

我有这张桌子:

id  | name
1   | John
2   | John
3   | Peter
4   | Mike
5   | Mike
Run Code Online (Sandbox Code Playgroud)

我想获取唯一名称,获取列表中的最新名称。我可以去:

SELECT DISTINCT name FROM table ORDER BY id DESC LIMIT 2

这会让我:迈克和彼得。都好。但是,我还需要 ID,因此 DISTINCT 不再起作用。什么是正确的查询:

5   |   Mike
3   |   Peter
Run Code Online (Sandbox Code Playgroud)

用词:最新的 2 个独特的条目

mysql select

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

年份的 PostgreSQL 列

我想在 PostgreSQL 数据库中保存年份 - 只是年份。我应该如何创建这个字段?有很多关于如何从日期字段中提取年份的信息,但没有关于我应该如何设置仅使用年份的表格的信息。我试过这个:

CREATE TABLE information (
    id serial PRIMARY KEY,
    year date NOT NULL
);

INSERT INTO "information" ("year") VALUES (2010);
Run Code Online (Sandbox Code Playgroud)

但这失败了:

ERROR: invalid input syntax for type date: "2010"
Run Code Online (Sandbox Code Playgroud)

postgresql datatypes date-format

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