0

我有许多非常相似的数据类型,除了少数在逻辑上具有不同名称(但数据类型相同)的列。我想把所有东西都放在一张桌子上。

现在我的想法只是为某些列(例如“custom_data_1”等)提供一个通用名称,并在不同的表中记住每种数据类型的列名是什么。这应该可行,但我想知道是否有更结构化的方式(这将使查询更容易并且感觉不那么脏)来实现相同的效果(在 MySQL 或 SQLite 中)。

4

3 回答 3

3

如果要存储不同的东西,则应将它们存储在不同的表中。然后,您可以稍后创建一个视图以获取易于查询的内容。

优点是每个表都有自己的对象,您可以轻松地向其中添加/删除/重命名列。如果您的 type1 需要 2 个额外的列,但 type2 实际上丢失了一列怎么办?

于 2012-09-05T09:14:27.130 回答
1

如果有一个需要 SQL VIEW 的案例,我认为没有比这更好的案例了。假设您的 SQL 后端支持它们(而且我相信所有这些都值得)去支持。

于 2012-09-05T09:12:10.903 回答
1

最佳实践建议使用规范化表结构来编写易于阅读/使用的 sql 三种范式 - MySQL

确保您的列名称描述了它们的用途,例如 a useridmust not be called custom_data_1。如果您创建一个新表并且需要引用用户 ID,它应该很容易链接为外键。

您可以将所有内容存储在一个表中,但是结构查询语言可以做到这一点 - 将来自不同表(优化和正确创建)的数据合并到一个视图中。需要考虑的重要一点是数据增长时的可扩展性和可维护性。

考虑 MySQL 最佳实践 - 20 多个 MySQL 最佳实践

也是一个有趣的阅读 - MySQL 中的拆分表。好习惯?

于 2012-09-05T09:41:07.860 回答