问一个基础问题? 多对多表是否需要自增id?

问题描述

例如有用户表: user 字段 id,name,xxx有角色表: role 字段 id,name,xxx用户角色表 :userrole 字段 : userid,roleid1方案. roleid加userid 作为主键,无其他字段2方案. userrole增加id字段,id做主键, roleid加userid 做UNIQUE索引大家在实际项目中是如何选择的?

解决方案

事实证明 加一个非业务主键 绝对是正确的。我做过的项目基本都属于类似情况。
解决方案二:
第一种方案足以
解决方案三:
这种情况,我会选择方案1.
解决方案四:
这个根本就不需要主键的,要它有何用呢?你在实际中不可能给同一个人同一个role给多次的利用Hibernate生成的表结构就是只有它们两个的id作为外键的
解决方案五:
引用roleid加userid 作为主键,无其他字段一般都采用非业务键做主键,如果使用ORM的工具,建议不要使用联合主键。
解决方案六:
一个表的ID是否需要自增,与它是不是和别的表存在多对多关系应该是没有必然联系的,它只是一个主键的生成策略而已。

时间: 2024-08-03 05:17:20

问一个基础问题? 多对多表是否需要自增id?的相关文章

问一个基础问题 用eclipse开发web项目

问题描述 我刚学习web,用eclipse(没有装插件的eclipse)新建了一个 Dynamic Web project ,生成一个如图的默认文件结构,这和书上讲的不太一样 请问是我哪里没有设置好吗?怎样才能使文件变成 这样( 视频上截下来的图): 问题补充:francis.xjl 写道 解决方案 插件不一样也会导致不太一样,其实显示方式只是表象,不能太过在意,比如一条数据可以有多种显示方式似得.在eclipse中有很多种显示方式,在我看来project explorer不如package e

问一个基础的问题

问题描述 getAbsolutePathpublic String getAbsolutePath()返回此抽象路径名的绝对路径名字符串. 如果此抽象路径名已经是绝对路径名,则返回该路径名字符串,这与 getPath() 方法一样.如果此抽象路径名是空抽象路径名,则返回当前用户目录的路径名字符串,该目录由系统属性 user.dir 指定.否则,使用与系统有关的方式解析此路径名.在 UNIX 系统上,根据当前用户目录解析相对路径名,可使该路径名成为绝对路径名.在 Microsoft Windows

图片-问一个关于SQL的表关系问题!

问题描述 问一个关于SQL的表关系问题! 内容是这样的: 一个管理员可以管理多个仓库,一个仓库可以由多个管理员管理,假如我要建立一个类似这样的管理表,我要怎么建立?主键给谁?表的行要怎么写? ![图片说明](http://img.ask.csdn.net/upload/201506/27/1435404749_547198.png) 解决方案 先建一个管理员表和一个仓库表 再建一个包含管理员ID和仓库ID的表 实现多对多关系 解决方案二: 分成两个表,管理员表,仓库表.然后两者通过id等建立关联

代码-问一个JAVA的基础问题,希望大神们帮忙解惑。

问题描述 问一个JAVA的基础问题,希望大神们帮忙解惑. 有一段如下的代码,有几个疑惑: 1.定义了一个final的test1和一个static里面的test1,为什么定义2个test1不会有问题? 2.为什么在一个类中直接写static{ },这个是什么原理? 3.还有什么类似static{ }这样的写法?是什么原理? public class MyOwenTest{ public static final String test1 = "a"; static{ String tes

静态网页-新人问一个html的基础问题,请大神解答

问题描述 新人问一个html的基础问题,请大神解答 想用html和css写一个类似hao123的静态版,锻炼自己.只求大致相似即可.也学了基本的知识,可是开始写确无从下手,感觉在慕课上看的全都乱了,不知道什么显示要用什么元素写!怎么办? 解决方案 善于使用IE F12或者Chrome的开发者工具.它们非常适合你模仿某个现成网站的html/css,而且它们支持直接编辑css/html,并且立刻看到效果. 解决方案二: 学习应该先从基础学-一个标签一个标签的学,基础掌握好后再临摹,会事半功倍 解决方

问一个问题, easyui 的 datagrid 能不能实现 这种较复杂一点的表

问题描述 问一个问题, easyui 的 datagrid 能不能实现 这种较复杂一点的表 RT , 用easyui 的 datagrid 能不能实现. 解决方案 这个哪里复杂了?合并行不就行了! 解决方案二: 用 onLoadSuccess:可以实现改变默认的单双行变色 单元格合并没用到过 可以自己查一下datagrid的api

大家好,问大家一个问题,关于跳跃表的

问题描述 跳跃表是怎么查找的,具体的过程是什么呢?请帮忙解释下,谢谢 解决方案 我就不贴图了,你可以看我的这篇文章跳跃表(Skip List)http://deepfuture.iteye.com/blog/954342解决方案二:跳跃表(Skip List)是1987年才诞生的一种崭新的数据结构,它在进行查找.插入.删除等操作时的期望时间复杂度均为O(logn),有着近乎替代平衡树的本领.而且最重要的一点,就是它的编程复杂度较同类的AVL树,红黑树等要低得多,这使得其无论是在理解还是在推广性上

标签-问一个关于hibernate的问题?

问题描述 问一个关于hibernate的问题? 多对一关系,DataDic对DataDicType, 然后通过查询获得DataDic的表数据,放在dataDicList数组中,怎么在jstl的c:foreach标签中显示DataDicType中的某个字段值,即dataDic.dataDicType.getXXX() 这是DataDic的表和映射文件 这是DataDicType表,和DataDic有一对多 多对一关系 这是页面要显示的列表内容,问题就在这里,第2列的ddTypeName怎么获取?

jsp mysql-jsp页面如何实现一个用mysql创建的表中的信息

问题描述 jsp页面如何实现一个用mysql创建的表中的信息 这是我的jsp界面 <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> My JSP 用户名: 密 码 </body> </html> 而且我的数据库也连接上了,连接代码放在src/com.ming.java/DB类中,我在数据库中还建了一张表格userinfo