我想知道包含大约 80 列的数据库中的表是否存在任何矛盾或未来问题。将只有 VARCHAR,很少有 INT,也许还有 1 或 2 条消息。我在网上做了一些研究,但没有什么真正谈论这种问题......换句话说,将这么多值放在表中是否可以甚至"正常"?
提前感谢!
如果字段大多是整数,则应该不会有任何实际问题。 大多数 DBMS 对行长度都有限制,因此一堆长列可能会导致问题......但除非varchar
列很长,否则您可能没问题。
老实说,我什至不需要考虑这一点 - 对于正确规范化的数据库,一个表中需要这么多列的情况非常罕见。
您拥有的列越多,处理记录的内存就越多。
在这种情况下,我建议使用"多对一"关系方案。
表格示例:
customer
id
name
email
...
ins_app_form (Insurance application form)
id
customer_id (relation with customer)
date
... (here comes some other data if you need)
ins_app_item (Insurance application form items/fields)
id
ins_app_form_id (relation with Insurance application form)
question (the name of a question in application form)
answer (customer's answer)
因此,要使用此方案显示申请表,您需要运行查询:
SELECT
iaf.id AS application_id,
iaf.date AS `date`,
iai.question,
iai.answer
FROM ins_app_form AS iaf
LEFT JOIN ins_app_item AS iai ON iai.ins_app_form_id=iaf.id
WHERE iaf.customer_id=<ID of a customer>
此查询将为您带来如下内容:
id date question answer
1 2014-03-31 "Year" "2008"
1 2014-03-31 "Car make" "Audi"
1 2014-03-31 "Car model" "Q7"
...