【发布时间】:2015-12-25 09:00:55
【问题描述】:
我正在使用 PostgreSQL,我在我的数据库中创建了 statements 表并插入了以下代码相关的信息:
cur.execute("CREATE TABLE IF NOT EXISTS statements (statement_id SERIAL NOT NULL PRIMARY KEY, statement_name VARCHAR(255) NOT NULL, code INT NOT NULL, FOREIGN KEY (code) REFERENCES companies_list (code))")
statement_name = ["balance_sheet", "income_statement", "cash_flow"]
执行后它给了我以下结果:
statement_id | statement_name | code
--------------+------------------+---------
1 | balance_sheet | 1111
2 | Income_statement | 1111
3 | cash_flow | 1111
4 | balance_sheet | 2222
我为每个公司代码启动了 3 个语句。表中的公司代码是完整列表,其中一些代码(在银行部门)需要仅对银行使用不同的报表(资产负债表“银行”、损益表“银行”和现金流量“银行”)。 最好的解决方案是什么?..我需要制作更多报表名称(即 balance_sheets_banks )还是应该将所有这些银行代码包含在列表中并分配一些方法?要么回答我该怎么做?
我问这个问题的原因是在后面的步骤中我正在创建一个表(名为 statement_items )它将包含每个语句的项目,在下面找到它:
cur.execute("CREATE TABLE IF NOT EXISTS statement_items (statement_row_id SERIAL NOT NULL PRIMARY KEY, statement_id INT NOT NULL, row_order INT NOT NULL, row_title VARCHAR(255) NOT NULL, FOREIGN KEY (statement_id) REFERENCES statements (statement_id))")
执行后它会给我:
statement_row_id | statement_id | row_order | row_title
------------------+--------------+-----------+----------------
1 | 1 | 1 | Current Assets
2 | 2 | 1 | Sales
那么到底上面第一点怎么解决,下一张表的变化怎么实现呢?
【问题讨论】:
标签: python postgresql relational-database