在制作行的静态副本时,我应该使用多个 table 还是一个 table 和更多列?
Should I use multiple tables or one table with more columns when making static copies of rows?
因此用户能够创建项目并对其进行编辑。这些项目(正在进行中)的所有必要数据都存储在 projects table 中。当用户对项目感到满意时,他们可以发布项目。这将创建一个静态副本。他们仍然可以编辑项目(进行中),但这不会对副本进行任何更改。
我创建了另一个 table published_projects 来存储这些静态副本。此 table 包含与 项目相同的列 table 加上一些额外的内容(例如发布日期)。
这会导致很多重复的内容,但这似乎是不可避免的,因为项目中的更改不应反映在进行中的项目中。这是最好的方法还是有更好的方法?
我可以将其合并为一个 table,但这仍然会产生相同数量的行,而且我认为一个 table 中的更多行会导致查询速度变慢 table.
浅薄的回答说一个table。但是...
单个 table 可以工作——您有 published_date
列(或其他列)来指示这是否是冻结副本,除非通过复制,否则不应修改它。
我会根据所有支持代码的复杂性来决定是一个 table 还是两个。为一对二写哪些动作更简单?还是更容易维护?等等
只要有足够的索引,性能就不会很重要。
还要进一步考虑两个 table 方法——是否有其他列可以从两个 table 中的每一个中删除?积极回答问题;事实证明,这两个 table 并不像您目前认为的那样相似。如果是这样,这将使答案倾向于两个 tables。
因此用户能够创建项目并对其进行编辑。这些项目(正在进行中)的所有必要数据都存储在 projects table 中。当用户对项目感到满意时,他们可以发布项目。这将创建一个静态副本。他们仍然可以编辑项目(进行中),但这不会对副本进行任何更改。
我创建了另一个 table published_projects 来存储这些静态副本。此 table 包含与 项目相同的列 table 加上一些额外的内容(例如发布日期)。
这会导致很多重复的内容,但这似乎是不可避免的,因为项目中的更改不应反映在进行中的项目中。这是最好的方法还是有更好的方法?
我可以将其合并为一个 table,但这仍然会产生相同数量的行,而且我认为一个 table 中的更多行会导致查询速度变慢 table.
浅薄的回答说一个table。但是...
单个 table 可以工作——您有 published_date
列(或其他列)来指示这是否是冻结副本,除非通过复制,否则不应修改它。
我会根据所有支持代码的复杂性来决定是一个 table 还是两个。为一对二写哪些动作更简单?还是更容易维护?等等
只要有足够的索引,性能就不会很重要。
还要进一步考虑两个 table 方法——是否有其他列可以从两个 table 中的每一个中删除?积极回答问题;事实证明,这两个 table 并不像您目前认为的那样相似。如果是这样,这将使答案倾向于两个 tables。