表(数据库)中的值过多是否存在任何矛盾



我想知道包含大约 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"
...

最新更新