数据库架构设计问题

时间:2016-02-04 09:43:08

标签: sql database sqlite

我在SQLite DBMS中有两个表:

Shop(PK, A1, A2, A3) where PK is Primary Key `A1..An` are nullable attributes;
Product(PK, FK) where FK references Shop(PK) and PK|FK is Primary Key

Shop通常在数据库实例中有5个或6个条目。

问题在于,当插入新产品时,它经常出现在所有商店中,所以现在用户实际上必须一次插入5或6行(其中PK重复每一行 - PK由实例中的长属性组成。)

我想知道是否有一种方法可以通过默认将一个新产品与所有商店相关联,通过重构模式(例如,可能使用标志?)或触发所有插入来使用户的生活更轻松什么时候出现新产品(是不是很棘手?),或两者兼而有之。请注意,至少有一个商店必须有一个产品。我希望解决方案尽可能不那么模糊,易于维护。

1 个答案:

答案 0 :(得分:3)

这是两个表之间的N&N关系,在我看来FK不应该在产品表中,你应该有另一个表“PRODUCT_SHOP”,你有PKSHOP,PKPRODUCT。 要回答你的问题,有很多棘手的方法可以做到这一点,因为你必须使用代码来解释你的技巧,所以没有一个是好的, 最好的方法是尊重标准,并在PRODUCT_SHOP表中插入与您的产品相同的数量(除非您有很多,比如真的很多商店,表PRODUCT_SHOP基本上是产品x商店)。 它实际上取决于数据库的大小,如果它不是很大的关系基础数据。 希望我帮助