我有一个汽车分类列表数据库.
90天后,分类列表不再有效显示(列表过期); 但是,我想保留列表以便存档.
问题:从数据库设计最佳实践角度以及查询性能来看,最好将旧的列表A)与当前列表保持在同一个表中,或者B),将过期的列表移到过期的表中并删除该列表从目前的上市表?
换一种说法,
选项A):
table_classified_listing:
car_id
expired = true | false
...
Run Code Online (Sandbox Code Playgroud)
选项B):
// only current listing in this table (expired = false)
table_classified_listing:
car_id
...
// only expired listing in this table (expired = true)
expired_table_classified_listing:
car_id
...
Run Code Online (Sandbox Code Playgroud)
更新:
我对选项A的关注是,在我的MySQL数据库中 - 当我运行时EXPLAIN,它说它正在使用expired作为索引的主键.但是,对我的查询搜索性能更重要的是它使用该price字段,因为我正在进行基于的搜索price > X.因此我为什么考虑选择选项B.