【发布时间】:2019-10-15 14:49:47
【问题描述】:
我需要创建 sqlite 语句来检查特定列的值是否不为空,然后添加一个新列并插入新值。
我已经拥有的是这个:
CREATE TABLE "StuPayment" (
"PayNumber" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
"StudentName" ntext,
"CourseName" ntext,
"PayDate" datetime,
"CheckNumber" NUMERIC,
"Amount" NUMERIC
)
我想要创建一个新的付款列(PayDate1,CheckNumber1,Amount1),当学生支付两笔或有时三笔的课程费用时。
感谢您抽出宝贵时间阅读本文。
【问题讨论】:
-
我建议创建一个新行而不是更多列。当您的付款越来越多时,添加一列将是一场噩梦。
-
我想过,但问题是一年后表格可能多达 10000 行,这很难过滤或创建报告,谢谢你的前任
-
关系数据库是基于关系建模的。您的方法忽略了每个学生可以进行多次付款,这意味着每个学生有很多付款行。根据需要过滤非常简单 - 例如日期或序列号
-
10,000 行并不是很多。每次付款时,您都会一遍又一遍地维护添加列的时间会更糟。此外,对于报告,您可以使用 group by 和其他工具进行查询,以您建议的相同格式提取数据。以这种方式设计桌子并不是最佳选择。
-
有没有办法使用 sqlite 对共享相同 StudentName 和 CourseName 的行进行分组?
标签: c# sql sqlite insert alter