我正在設計一個產品數據庫,其中根據產品的類型,產品可能具有非常不同的屬性,但屬性對於每種類型都是固定的,類型根本不可管理。例如:數據庫設計:具有不同屬性的對象
雜誌:標題,ISSUE_NUMBER,頁數,份數,close_date,RELEASE_DATE
WEB_SITE:名,帶寬,命中,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
這可處理級聯刪除產品,但...好吧,我不完全相信......
三種可能的設計的好概述,謝謝。 所有的答案都很好,但我只能選一個'<:-)' – 2010-04-27 11:30:26