Mat*_*iva 5 sql database database-design entity-relationship
我有两个表,products
并且categories
有很多关系,所以我添加了一个products_categories
包含category_id
和的表product_id
.
我应该添加另一个(自动递增)索引列还是使用两个现有索引列作为主键?
Tom*_*icz 11
那要看.
您是否将数据更多地视为对象集(并且关系数据库只是一种存储介质)或者是由关系代数本地表示和分析的一组事实.
某些ORM /框架/工具不能很好地支持多列主键.如果您碰巧使用其中一个,则需要额外的id列.
如果它只是一个多对多关系而没有与之关联的其他数据,最好避免使用额外的id列并将两列作为主键.
如果你想为这个关联添加一些额外的信息,那么它将变成两个实体的多对多关系.所以它成为它自己的实体,如果它拥有独立于它连接的实体的自己的id,它会更方便.
您不需要添加额外的自动递增索引列,但我(可能与其他大多数人相反)仍然建议您这样做.首先,应用程序更容易使用单个数字引用行,例如删除行时.其次,有时能够知道添加行的顺序是有用的.