我有一个名为'产品'的表,该表包含以下列: id,名称,价格和表名。
我有一组以表'产品'的列表名命名的表,并具有以下列: customer_id和数量。
我想将表'产品'与每个关联表的行数结合起来。
如果以常规方式建立表,则以一对多关系创建称为'transaction'和'product'的2个表,我可以这样做:
SELECT product, count(*)
FROM product p
INNER JOIN transaction t on p.product_id = t.product_id
GROUP BY product
但是,它不是以这种方式设置的,所以我必须这样做:
SELECT p.name, p.price, p.id, p.tablename, t.table_rows as Count
FROM products p
INNER JOIN
(SELECT table_name, auto_increment
FROM INFORMATION_SCHEMA.TABLES) t on t.table_name = p.tablename
这还不错。那么,使用这种非常规数据库结构为什么有用是有原因的(一个优势)吗?我们有一些表包含3000笔交易。我一直认为应该始终使用一对多原型。我不想问我的首席开发人员为什么他这样做,以免对他不礼貌。