我在创建我的sql数据库时遇到了一些情况。我一直在研究一个有很多问题的调查问卷。我正在使用一个PHP脚本,当用户提交问卷时它自动创建表,并使用输入名称来命名表的列。
我认为一个很好的方法可以让我在以后查看提交时使用问题作为HTML输入的名称属性,以便当我查询它时,一切都在那里,我不会我不得不想知道哪个答案会回答哪个问题,或者来回看看其他问题。
我遇到的问题是SQL列名称的长度有限。我不知道到底有多长,但是在我缩短输入名称之前我遇到了错误。
所以我需要完成的是为输入使用较短的名称,因此它们对于sql列来说不会太长,但不知何故将它链接到另一个由实际名称组成的表,以便稍后我可以查询它们需要查看提交内容。有解决方法吗?
答案 0 :(得分:2)
例如,对于用户生成的调查问卷,您可能具有以下布局:
id name
1 john
2 alice
3 fred
id created_by_user_id questionnaire_name
1 1 Animal Questionnaire
2 3 Tree Questionnaire
...
id questionnaire_id question
1 1 How many pets do you own?
2 1 Have you ever owned a goldfish?
3 1 Do you like cows?
4 2 How many trees are in your back yard?
5 2 When did you last see a silver birch?
...
id questionnaire_id question_id user_answered_id answer_text
1 1 1 2 Four
2 1 2 2 No
3 1 3 2 I love cows!
4 1 3 3 I hate cows.
这样,每种类型的事实只需要一个表,您不必动态生成表或列,并且可以为数据存储尽可能多的文本。
答案 1 :(得分:0)
通常,最大长度为128个字符,但根据您使用的SQL版本有例外。