我想创建一个问题和答案应用程序,如堆栈溢出。
我不知道如何在MySQL表格列中存储多个答案。
我想知道如何在sql表的同一行中存储问题和多个答案。
答案 0 :(得分:2)
不......不要这样做。 非常糟糕的主意恕我直言任何搜索和东西都很难。 为什么我们仍然拥有Rship数据库模型是有原因的。
但是,如果你必须沿着这条路走下去,你总是可以把它存储为JSON或XML,也许将来某个地方,Oracle将提供在列中搜索JSON或XML的功能:)
答案 1 :(得分:1)
你可以创建一个对象(假设你想在同一列中保存firstname和lastname,例如),像这样(VB示例):
public class myClass
public property firstname
public property lastname
end class
然后创建一个实例并分配属性
dim cls as new myClass
cls.firstname= ...
cls.lastname = ...
然后使用JavaScriptSerializer将此对象转换为json字符串并将该字符串存储在列中。在回来的路上,使用JavaScriptSerializer来清除列中的值以获取myClass的实例。如果您需要有关如何使用JavaScriptSerializer的信息,请在此网站上搜索(这里已多次回答,因此,不再重复)。
如果使用SQL Server,您可能还有一列XML数据类型并在列中存储XML(而不是json)。您可以在SQL Server中使用XML进行搜索。见How can I query a value in SQL Server XML column。 MySQL更新版本还支持搜索以json格式存储的数据。
答案 2 :(得分:1)
创建两个表并使用外键关系连接它们是最好的解决方案之一。 因为在同一个表格中保留问题和答案可能不允许您针对相同的问题获得多个答案。如果您希望单个问题有多个答案,那么数据库的冗余肯定会增加。因此,请尝试正确使用DB-Relationship概念。
答案 3 :(得分:0)
如果您需要StackOverflow结构,则应创建两个表Questions
和Answers
,并将它们与Answers' to 'Questions
答案 4 :(得分:0)