Mysql 数据库结构/已定义和未定义的字段值
我使用的是MySQL,有一个Mysql 数据库结构/已定义和未定义的字段值,mysql,database,structure,Mysql,Database,Structure,我使用的是MySQL,有一个articles表,它有两列:currency和price,但是一篇文章也可以有协商价格,所以我无法确定currency和price值 我应该怎么做才能定义和协商价格?如果协商价格是特定于用户/企业的,那么这可能是一对多关系,您需要一个元组表来保存价格并将文章链接到另一个对象 e、 g: (我假设价格是与用户协商的) 然后,您只需将左键联接到此表并使用NVL(user\u article\u price.price,article.price) 以获取重写的值 注意:
articles
表,它有两列:currency
和price
,但是一篇文章也可以有协商价格
,所以我无法确定currency
和price
值
我应该怎么做才能定义和协商价格?如果协商价格是特定于用户/企业的,那么这可能是一对多关系,您需要一个元组表来保存价格并将文章链接到另一个对象 e、 g: (我假设价格是与用户协商的) 然后,您只需将
左键联接到此表并使用NVL(user\u article\u price.price,article.price)
以获取重写的值
注意:使用2个id列制作复合主键可能是一个好主意,以阻止重复值。如果协商价格特定于用户/企业,那么这可能是一对多关系,您需要一个元组表来保存价格并将文章链接到另一个对象
e、 g:
(我假设价格是与用户协商的)
然后,您只需将左键联接到此表并使用NVL(user\u article\u price.price,article.price)
以获取重写的值
注意:使用2个id列创建复合主键以阻止重复值可能是一个好主意。是的,它是一对多的。
用户可以有许多文章,但问题是如何确定文章可以有准确的协商价格。。。我被要求用currency
和price
列定义协商价格,方式如下:currency=nil
,price=-1
我不知道选择替代价格时使用的逻辑是什么?在我的示例中,我选择覆盖,如果它优先于使用NVL的实际价格。当然,您可以选择两种价格,并根据您的需要使用这些值。是的,这是一对多用户可以拥有多篇文章,但问题是如何确定该文章可以具有精确和协商的价格。。。我被要求用currency
和price
列定义协商价格,方式如下:currency=nil
,price=-1
我不知道选择替代价格时使用的逻辑是什么?在我的示例中,我选择覆盖,如果它优先于使用NVL的实际价格。当然,您可以选择这两种价格,并根据需要使用这些值。
CREATE TABLE user_article_price (
articleid INT,
userid INT,
price DECIMAL(13,2)
)