我正在研究一个会计系统,对于每笔交易,如果这是借方或贷方,我需要保存。我可以想到两种方法(MySQL数据库):
方法一
方法二
在第一个设置中,我保存了交易类型,但在第二种方式中,我宁愿将金额保存在借方或贷方列中。这种方法的优点是与方法 1 相比,我可以更轻松地将借方和贷方总额相加。但我想知道是否有一种通用的方法可以做到这一点?
我有一个 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 数据库。其中一个字段是保存每笔交易使用的货币。您会推荐哪种字段类型?细节:
我正在考虑:
char (3)领域和保存货币usd,cad等等。 enum字段并将 10 种货币定义为选项tinyint字段并将其与另一个包含每种货币的 iso 代码的数据库相关联。 tinyint字段而不是关联数据库(并且必须执行 JOIN),我只是将非常静态且不变的货币列表保存在 PHP 数组中。为我节省了一些 JOINing,但仍然允许我使用tinyint.有人对什么是最好的有任何建议吗?
我有这张桌子:
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 个独特的条目
我想在 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)