我正在设计一个产品数据库,其中产品可以根据其类型具有非常不同的属性,但是每种类型的属性都是固定的,并且类型根本不可管理.例如.:
magazine:title,issue_number,pages,copies,close_date,release_date
web_site:name,bandwidth,hits,date_from,date_to
我想使用InnoDB并在引擎允许的情况下强制执行数据库完整性.处理此问题的推荐方法是什么?
我讨厌那些表有100列并且大多数值为NULL的设计,所以我想到这样的事情:
product_type
============
product_type_id INT
product_type_name VARCHAR
product
=======
product_id INT
product_name VARCHAR
product_type_id INT -> Foreign key to product_type.product_type_id
valid_since DATETIME
valid_to DATETIME
magazine
========
magazine_id INT
title VARCHAR
product_id INT -> Foreign key to product.product_id
issue_number INT
pages INT
copies INT
close_date DATETIME
release_date DATETIME
web_site
========
web_site_id INT
name VARCHAR
product_id INT -> Foreign key to product.product_id
bandwidth INT
hits INT
date_from DATETIME
date_to DATETIME
这可以处理级联产品删除但是……好吧,我不完全相信……