使用 MySQL set 类型是否正确?

发布于 2024-10-27 05:04:44 字数 145 浏览 1 评论 0原文

你好 我正在建立一个用户数据库,其中每个用户都存储了一些关于他们的正常详细信息。 我还想存储用户知道哪些语言。

我知道执行此操作的一种方法是创建一个语言表,然后创建一个在语言和用户之间映射的单独表。使用 SQL“set”类型而不是为语言创建额外的表会更容易吗?

Hi
I am building a database of users where each user has some normal details stored about them.
I would also like to store which languages the user knows.

I know that one way to do this would be to create a language table and then create a separate table that maps between languages and users. Would it be easier to use the SQL "set" type instead of creating an extra table for languages?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浅沫记忆 2024-11-03 05:04:44

可能不会。使用 SET 存在很多问题(例如,只有 64 个元素;而且我很确定有超过 64 种语言)。

Probably not. There are lots of problems with using SET (only 64 elements, for example; and I'm pretty sure there are more than 64 languages).

时光清浅 2024-11-03 05:04:44

作为一般规则,如果您可以枚举所有可能/支持的语言/值,SET 将起作用。否则我会使用该表,因为返回并ALTER TABLE添加新语言并不是一个很好的方法,并且还可能需要使用以下命令更改应用程序SET,而如果您使用单独的表,它应该只需INSERT 一个新的语言行。

而且,语言就是这样,我不想假设我事先了解每种语言。

As a general rule, if you can enumerate all the possible/supported languages/values, SET will work. Otherwise I'd use the table, because going back and ALTER TABLEing to add a new language isn't a very good way to do things and will also probably require changes to the application(s) using the SET, whereas if you use a separate table it should Just Work to INSERT a new language row.

And, language being what it is, I'd not want to assume I know every language beforehand.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文