【发布时间】:2021-04-02 08:01:58
【问题描述】:
我不确定我这样做是否正确,或者在 MYSQL 中是否有更好的方法
我想要一个结构,其中一个对象可以有无限数量的关联数据值,以便用户可以添加尽可能多的描述性数据,因为他们想要与它关联。我不知道他们可以提前投入什么。 (下面的例子只是简单的例子,并不针对这个问题。)
对象
| ObjID | ObjName |
|---|---|
| 67 | Dallas |
| 90 | Austin |
数据
| uID | ObjID | DataName | DataType | StringValue | NumberValue | BlobValue |
|---|---|---|---|---|---|---|
| 0 | 67 | Best Bird | {String} | Mockingbird | null | null |
| 1 | 67 | Best Store | {String} | IKEA | null | null |
| 2 | 67 | Emblem Icon | {Blob} | null | null | a2fe4f1... |
| 3 | 90 | Avg Salary | {Number} | null | 76,563.05 | null |
我的问题是:
- 当 put 或 post 数据进入时,其格式为 {uID:0, Value:"Bird2"}。有没有一种优雅的方式来写入正确的类型列,而无需先查询它是什么 DataType?
- 在选择对象的所有数据时,我不希望它包含所有数据列,但只有其数据类型的数据列。 MYSQL 中是否有一种优雅的方式来选择该列?
- 这是解决此问题的最佳方法吗?
谢谢!
【问题讨论】:
标签: mysql database database-design entity-attribute-value