mysql - 比 65 列 Toggles 表更好的数据库设计?

标签 mysql database-design

我在设计数据库时遇到了一些我不喜欢的事情。我将有多达 1000 个不同的场景,在每个场景中我都需要存储 64 个不同切换开关中每一个的状态。我想出了下表:

Scenario (Scenario_ID, Scenario_Name)
Toggles (Scenario_ID, Toggle_1, Toggle_2, ..., Toggle_64)

这给我留下了一个 65 列的 Toggles 表。必须有比 64 列“开”或“关”更好的方法,但我不知道它可能是什么。我不想将切换状态存储在 CSV 中的一列中,因为它会不断变化,并且需要经常解析。通过简单地将 Toggle_14 更新为“关闭”而不是解析 CSV、更改它并重新加载它,我可以更轻松地更新表格。

什么是更好的数据库设计?

最佳答案

使用多对多关系:

Table Scenario (Id, Name)


Table ScenarioToggles (ScenarioId, TogglesId, ToggleState)


Table Toggles (Id, ToggleName)

ScenarioToggles 表中的 ToggleState 字段将保存 On/Off 值。

如果您需要 64 个以上的切换,它也会产生一定的灵 active 。

关于mysql - 比 65 列 Toggles 表更好的数据库设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1183129/

相关文章:

mysql - 分层数据库模型有问题吗?

mysql - Polymorph vs Relation Mysql with Laravel

PHP- if else 语句不起作用?

mysql - 连接两个表时使用 LEFT OUTER JOIN

mysql - 从 2 个表中计算 1 个用户的条目总数

mysql - 数据库拆分;多个表

mysql - 数据库架构多对多对多

php - 我的sql错在哪里?

mysql - CakePHP 保存默认 0 值

mysql - 存储日期列表的最佳方式是什么