我有一个简单的应用程序,用户将数据提交到表中。
目前,用户可以传递3个字段。我正在尝试找到一个解决方案,其中描述列的数量可能会有所不同,具体取决于用户创建的描述列表。
到目前为止,我一直在考虑:
我目前的表格是这样的:
CREATE TABLE `user_input` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`description_list_id` int(11) NOT NULL,
`description1` int(11) NOT NULL,
`description2` int(11) NOT NULL,
`description3` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
还有其他解决方案吗?
答案 0 :(得分:11)
绝对是选项#2。在这种情况下,Normalizaing始终是最佳选择。你说的更正确,但是当你需要超过15个描述时,你正在克服不可避免的问题。
答案 1 :(得分:4)
就灵活性而言,第二种解决方案是优选的。如果明天需要使用第一个解决方案添加更多描述字段,则需要修改表和代码来管理它。
第二种解决方案现在可能需要更多工作,但它将处理2个类似200个描述。
对于一个小问题,第一种方法是更快速和肮脏的解决方案,如果你有时间尝试新的东西,第二种方法也是一个很好的练习。